日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > C++ > 正文

細說C++全局變量、局部變量和靜態局部變量

2020-05-23 14:28:40
字體:
來源:轉載
供稿:網友
我們已經在前面學習了變量,并且能夠熟練地使用它??墒牵瑑H僅靠這些知識,有些問題仍然無法得到解決。

標志符

首先要來介紹一下什么是標志符。在程序設計的過程中,經常要給變量、函數甚至是一些數據類型起名字(還包括以后的類名,對象名等)。我們把這些用戶根據一些規定,自己定義的各種名字統稱為標志符(Identifier)。顯然,標志符不允許和任何保留字相同。

全局變量和局部變量

在函數這一章節中,我們說過函數體內聲明的變量僅在該函數體內有效,別的函數是無法使用的。并且在函數運行結束后,這些變量也將消失了。我們把這些在函數體內聲明的變量稱為局部變量(Local Variable)。

然而,可能會遇到這樣的問題:我們想要創建一個變量作為數據緩沖區(Buffer),分別供數據生成、數據處理和數據輸出三個函數使用,三個函數都要能夠讀取或修改這個變量的值。顯然通過傳遞參數或返回值來解決這個問題是非常麻煩的。

那么,我們能否建立一個變量能夠讓這三個函數共同使用呢?在C++中,我們可以在函數體外聲明一個變量,它稱為全局變量(global variable)所謂全局,是指對于所有函數都能夠使用。當然,在該變量聲明之前出現的函數是不知道該變量的存在的,于是也就無法使用它了。另外,如果我們聲明了一個全局變量之后沒有對它進行初始化操作,則編譯器會自動將它的值初始化為0

下面,我們就用全局變量來實現剛才提出的那個問題:(程序11.1.1)
#include "iostream.h"
#include "stdlib.h"//用于產生隨機數,不必理會
#include "time.h"//用于產生隨機數,不必理會
#include "iomanip.h"//用于設置域寬
void makenum();
void output();
void cal();
int main()
{
   srand(time(NULL));//用于產生隨機數,不必理會
   for (int i=0;i<4;i++)
   {
      makenum();//產生隨機數放入緩沖區
     cal();//對緩沖區的數進行處理
      output();//輸出緩沖區的數值
   }
   return 0;
}
int buffer;//定義全局變量,以下函數都能使用它
void makenum()
{
   cout <<"Running make number..." <<endl;
   buffer=rand();//把產生的隨機數放入緩沖區
}
void cal()
{
   cout <<"Running calculate..." <<endl;
   buffer=buffer%100;
}
void output()
{
   cout <<"Running output..." <<endl;
   cout <<setw(2) <<buffer <<endl;
}

運行結果:
Running make number...
Running calculate...
Running output...
48
Running make number...
Running calculate...
Running output...
47
Running make number...
Running calculate...
Running output...
24
Running make number...
Running calculate...
Running output...
90
以上為某次運行得到的隨機結果??梢?,使用全局變量使得多個函數之間可以共享一個數據,同時從理論上實現了函數之間的通訊。 

靜態局部變量

全局變量實現了函數之間共享數據,也使得變量不再會因為某個函數的結束而消亡。但是,新問題又出現了:一個密碼檢測函數根據調用(用戶輸錯密碼)的次數來限制他進入系統。如果把調用次數存放在一個局部變量里,顯然是不可行的。雖然全局變量可以記錄一個函數的運行次數,但是這個變量是被所有函數共享的,每個函數都能修改它,實在很危險。我們現在需要的是一個函數運行結束后不會消失的,并且其他函數無法訪問的變量。

C++中,我們可以在函數體內聲明一個靜態局部變量(Static Local Variable)。它在函數運行結束后不會消失,并且只有聲明它的函數中能夠使用它。聲明一個靜態局部變量的方法是在聲明局部變量前加上static,例如:
    static int a;
和全局變量類似,如果我們沒有對一個靜態局部變量做初始化,則編譯器會自動將它初始化為0。

下面,我們就用靜態局部變量來模擬一下這個密碼檢測函數的功能:(程序11.1.2)
#include "iostream.h"
#include "stdlib.h"
bool password();//密碼檢測函數
int main()
{
   do
   {
   }
   while (password()!=true);//反復檢測密碼直到密碼正確
   cout <<"歡迎您進入系統!" <<endl;
   return 0;
}
bool password()
{
   static numOfRun=0;//聲明靜態局部變量存放函數調用次數
   if (numOfRun<3)
   {
      int psw;
      cout <<"第" <<++numOfRun <<"次輸入密碼" <<endl;
      cin >>psw;
      if (psw==123456)
      {
         return true;
      } 
      else
      {
         cout <<"密碼錯誤!" <<endl;
         return false;
      }
   }
   else
   {
      cout <<"您已經輸錯密碼三次!異常退出!" <<endl;
      exit(0);//退出程序運行
   }
}
第一次運行結果:
第1次輸入密碼
111111
密碼錯誤!
第2次輸入密碼
222222
密碼錯誤!
第3次輸入密碼
0
密碼錯誤!
您已經輸錯密碼三次!異常退出!

第二次運行結果:
第1次輸入密碼
000000
密碼錯誤!
第2次輸入密碼
123456
歡迎您進入系統!

使用靜態局部變量可以讓函數產生的數據更長期更安全地存儲。如果一個函數運行和它以前的運行結果有關,那么一般我們就會使用靜態局部變量。  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲国产福利视频| 精品视频999| 日韩视频专区| 日韩精品三级| 欧美 中文字幕| 日韩精品在线中文字幕| 免费一级欧美在线观看视频 | 欧美日韩一二三四| 欧美久久在线观看| 欧美 日韩 国产 在线| 黄色一区二区视频| 91精品国产自产| 日本一级一片免费视频| 亚洲欧洲精品在线| 亚洲综合欧美在线| 91精品国产自产在线| 一区二区中文字幕在线| 国产乱码在线| 免费在线观看国产黄| 日本精品在线中文字幕| av免费观看国产| 在线视频不卡一区二区| 欧美日韩精品欧美日韩精品| 国内不卡的二区三区中文字幕| 91www成人久久| 日韩精品视频免费播放| 国产福利第一页| 91精品国产自产观看在线| 欧美日韩午夜在线| 国产欧美日韩中文字幕在线| 亚洲第一福利视频在线| 日韩一级网站| 一区二区三区免费看视频| 久久91精品视频| 欧美日韩中文另类| 国产视频一二区| 日韩精品三级| 天堂精品高清1区2区3区| 国产香蕉精品视频| 国产调教精品| 91精品国产91久久久久久不卡| 国产导航在线| 91欧美在线视频| 精品国产欧美| 免费国产成人看片在线| 一级网站免费观看| 91吃瓜在线观看| 精品婷婷伊人一区三区三| 国产欧美久久久| 婷婷久久综合九色国产成人| 亚洲精品中文字幕乱码三区不卡| 在线一区二区不卡| 一区二区中文视频| 999精品在线| 精品亚洲永久免费| 久久99精品国产| 中文字幕在线观看精品| 精品国产乱码久久久久久蜜臀| 中文字幕日韩在线观看| 久久香蕉一区| 国产91欧美| 三级精品视频| 在线日韩欧美| 亚洲理论中文字幕| 日韩欧美高清在线视频| 麻豆精品99| 欧美.日韩.国产.一区.二区| 黄色国产在线| 欧美日韩国产在线观看| 欧美日韩一级视频| 日韩精品视频在线看| 国产不卡视频在线| 一区二区三区精品在线| 欧美日韩亚洲不卡| 日韩免费久久| 久久av免费| 99国内精品| 999精品在线| 亚洲精品中文字幕乱码三区| 91精品日本| 日韩中文字幕亚洲| 91日韩欧美| 国产v日产∨综合v精品视频| 91一区二区| 日韩欧美在线不卡| 视频一区视频二区中文| 日韩字幕在线观看| 欧美日韩综合高清一区二区| 日本熟女一区二区| 最近高清中文在线字幕在线观看1| 日韩国产亚洲欧美| 国产在线观看a| 国产黄色网页| 一区二区国产在线| 国产区日韩欧美| 日韩三级免费观看| a天堂中文在线官网在线| 日本а中文在线天堂| 久久精品最新免费国产成人| 亚洲成年人在线播放| 最近中文字幕日韩精品| 久久久精品国产免费观看同学| 午夜精品一区二区三区免费视频| 日韩在线视频精品| 人成免费在线视频| 日韩欧美资源站| 免费网站看黄yyy222| 99精品在线播放| 国产成人日日夜夜| 精品全国在线一区二区| 国产乱国产乱老熟300| 国产久卡久卡久卡久卡视频精品| 免费视频一区三区| 亚洲国产无线乱码在线观看| 日韩国产欧美亚洲| 亚洲综合日韩中文字幕v在线| 中文字幕国产日韩| 亚洲综合在线电影| 高清1区2区| 日韩精品手机在线| 日韩欧美综合视频| 久久婷婷综合国产| 色国产在线视频| 欧美日韩中文字幕在线观看| 欧美成人精品在线| 国产小视频免费在线观看| 7799精品视频天天看| 日韩精品大片| 激情久久99| 一二三区精品视频| 欧美日韩精品三区| 中文字幕 欧美日韩| 中文字幕亚洲乱码| 亚洲黄页一区| 精品国产999| 亚洲高清在线免费| 亚洲欧美韩国综合色| 免费国产成人看片在线| 阿v免费在线观看| 久久av免费| 日韩精品视频在线观看视频| wwwav91com| 亚洲女人天堂色在线7777| 日韩欧美在线字幕| 国产欧美日韩最新| 国产不卡一区| 亚洲图片小说综合| 天天综合日日夜夜精品| 黄污视频在线看| 一区二区日韩av| 77777_亚洲午夜久久多人| 成人精品国产福利| 91最新在线| 中文字幕欧美国内| 一区二区三区在线|网站| 国产成人精品网址| 天堂中文在线视频| 中文字幕在线导航| 国产一区久久久| 久草中文在线观看| 亚洲最新免费视频| 国产高清精品二区| 红桃视频亚洲| 日韩三区免费| 欧美日韩在线观看成人| 91精品国产色综合久久久蜜香臀| 91久久视频| 国产视频一区三区| 天堂在线www天堂中文在线| 国产欧美日韩亚洲| 91精品免费看| 在线看av的网址| 久久精品久久久久| aaa欧美日韩| wwwav在线播放| 日韩欧美综合| 国产高清在线视频| 1区2区3区在线视频| 亚洲中文字幕在线一区| 欧美三级日韩在线| 日韩在线视频二区| 美日韩精品免费视频| 欧美日韩国产一中文字不卡| 高清在线一区| 国产高清精品在线观看| 欧洲精品久久久| 亚洲视频 中文字幕| 精品人妻二区中文字幕| 中文字幕精品视频在线| 天堂在线视频中文网| 69免费视频| 久久蜜桃一区二区| 99精品在线播放| 99国产一区| 欧美日韩午夜在线| 精品久久蜜桃| 亚洲免费在线视频一区 二区| 日韩精品视频中文在线观看| 免费视频久久| 中文字幕欧美日韩va免费视频 | 久久永久免费视频| 欧美午夜影院在线视频| 欧美一级免费观看| 欧美不卡视频一区发布| 国产日韩电影| 视频在线一区二区| 日韩精品a在线观看91| 久久蜜桃精品| 一区二区三区高清在线| 国产乱国产乱老熟300部视频| 国产区日韩欧美| 日韩国产欧美在线视频| 欧美日韩国产在线播放| 中文字幕 欧美 日韩| 国产在线看一区| 青青久在线视频免费观看| 国产男女av| 精品在线一区二区三区| 亚洲免费看av| 中文字幕亚洲区| 亚洲图片小说综合| 一区二区日韩av| 精品播放一区二区| 精品999视频| 国产日产一区二区三区 | 国产一区久久久| 91av久久久| 亚洲欧美日本国产专区一区| 午夜精品一区二区三区视频免费看| 亚洲一区中文字幕在线观看| 国产91大片| 91精品国产91久久久久久青草| 日韩午夜中文字幕| 精品久久电影| 日韩欧美一二三| 欧美三级日本三级少妇99| 日韩欧美国产1| 91久久视频| 国产欧美日韩视频| 国产999在线观看| 久久久久久欧美| 一本大道一区二区三区| 天天综合日日夜夜精品| 欧美亚洲国产日韩2020| 国产中文在线| 欧美三级一区二区三区| 日韩在线 中文字幕| 日韩欧美亚洲视频| 日韩欧美国产片| 日韩三级视频在线| a视频免费看| 97国产视频| 亚洲欧美中文字幕在线一区| 日韩精品视频在线播放| 欧美一级欧美三级在线观看| 国产乱国产乱老熟300部视频| www高清在线视频日韩欧美| 久99久视频| 中文字幕线观看| 国产免费不卡av| 国产91大片| 亚洲中午字幕| 日韩在线视频免费观看| 久久久99久久精品欧美| 日韩在线视频网| 国产一级免费在线观看| 亚洲 欧美 中文字幕| 日韩av二区| 日本亚洲视频在线| 一区二区在线观| 日韩视频国产视频| 在线观看国产一级片| 视频一区视频二区中文| 91精品国产手机| 国产福利久久久| 伊人伊成久久人综合网小说| 欧美日韩精品在线视频| 精品一区二区在线观看视频| 在线日韩欧美| 中文字幕日韩视频| av首页在线| 国产999在线观看| 一区免费视频| 一区二区三区精品在线| 国产在线第一页| 亚洲欧洲综合另类| 欧美成人vr18sexvr| 视频一区二区中文字幕| 天堂中文在线视频| 欧美中文字幕第一页| 亚洲第一福利视频在线| 国产精久久久久| 在线免费视频一区二区| 亚洲一区三区在线观看| 亚洲综合三区| 亚洲免费精品| 国产亚洲欧美色| 99国产一区| 精品国产免费视频| 欧美在线观看视频一区| 欧美另类久久久品| 欧美日韩国产影片| 国产婷婷色一区二区三区在线| 日韩精品高清不卡| 精品久久久久久无| 欧美日韩国产免费| 日韩美女中文字幕| 国产黄在线观看免费观看不卡| 精品视频在线视频| 日韩在线不卡一区| a天堂在线资源| 91最新在线| 1区2区3区在线视频| 天堂精品高清1区2区3区| 国产在线二区| 91精品视频观看| 欧美婷婷精品激情| 免费精品国产自产拍在| 免费视频中文字幕| 一区二区不卡久久精品| 中文字幕综合在线| 一区二区三区在线播放视频| 中文字幕欧美日韩在线不卡| 精品网站999www| 亚洲第一香蕉网| 国产婷婷一区二区| 天堂在线视频中文网| 欧美日韩国产系列| 日韩精品中文字幕第1页| 欧美日韩第一区日日骚| 在线看av的网址| 一级特黄aaa大片在线观看| 日韩中文字幕第一页| 亚洲专区一区| 91精品在线观看视频| 国产区在线看| 日韩中文在线字幕| 国产成人精品网址| 日韩av一区二| 最近免费中文字幕在线第一页| 国产丝袜一区二区| 一区二区国产在线| 成人ww免费完整版在线观看| 91精品网站| 中文av字幕一区| 日韩欧美在线1卡| 国产欧美日韩精品高清二区综合区| 极品久久久久久| 欧美亚洲另类制服自拍| 亚洲免费婷婷| 欧美中文字幕| 精品国产91| 精品欧美不卡一区二区在线观看| 午夜国产在线| 国产欧美日韩久久| 在线视频不卡国产V| 欧美日韩91| 欧美1234区| 亚洲免费婷婷| 欧美日韩一二| 亚洲国产综合久久| 91精品国产高清久久久久久 | 欧美日韩高清一区二区| 精品亚洲永久免费| 亚洲免费视频一区| 国产在线高清精品| 国产欧美日韩最新| 欧美中文字幕视频在线观看| 91精品国产丝袜白色高跟鞋| 欧美日韩国产高清一区| 国产午夜精品全部视频播放| 中文网丁香综合网| 中文字幕亚洲二区| 欧美一级免费看| 久久香蕉精品| 精品中文字幕在线| 中文在线中文字幕| 中文字幕亚洲视频| 99精品999| 中文字幕久久精品| 国产永久在线观看| 国产黄色在线| 欧美日韩精品不卡| 日韩中文在线视频| 国内精品露脸在线视频播放| 在线视频三区| 色屁屁一区二区| 欧美不卡视频一区| 国产一区深夜福利| 精品播放一区二区| 91九色精品视频| 精品视频国产| 大香一本蕉伊线亚洲网| 午夜影院在线观看欧美| 精品极品三级久久久久| 国产成人综合av| 亚洲福利精品在线| 国产一二三视频| 日韩欧美高清在线视频| 九九在线精品|