黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證
華為認證 | Java認證
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格
報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平
駕駛員 | 網絡編輯
衛生資格 | 執業醫師 | 執業藥師 | 執業護士
會計從業資格考試會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師
注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師
質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師
設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師
城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲
您現在的位置: 考試吧(Exam8.com) > 計算機等級考試 > 計算機二級 > C語言 > 復習資料 > 正文

2010年計算機等級考試二級C語言教程:第五章

來源:考試吧Exam8.com) 2010-5-25 17:58:36 考試吧:中國教育培訓第一門戶 模擬考場
考試吧提供了2010年計算機等級考試二級C語言教程,幫助考生備戰2010年計算機等級考試

  三、靜態變量

  靜態變量的類型說明符是static。 靜態變量當然是屬于靜態存儲方式,但是屬于靜態存儲方式的量不一定就是靜態變量, 例如外部變量雖屬于靜態存儲方式,但不一定是靜態變量,必須由 static加以定義后才能成為靜態外部變量,或稱靜態全局變量。 對于自動變量,前面已經介紹它屬于動態存儲方式。 但是也可以用static定義它為靜態自動變量,或稱靜態局部變量,從而成為靜態存儲方式。

  由此看來, 一個變量可由static進行再說明,并改變其原有的存儲方式。

  1. 靜態局部變量

  在局部變量的說明前再加上static說明符就構成靜態局部變量。

  例如:

  static int a,b;

  static float array[5]={1,2,3,4,5};

  靜態局部變量屬于靜態存儲方式,它具有以下特點:

  (1)靜態局部變量在函數內定義,但不象自動變量那樣,當調用時就存在,退出函數時就消失。靜態局部變量始終存在著,也就是說它的生存期為整個源程序。

  (2)靜態局部變量的生存期雖然為整個源程序,但是其作用域仍與自動變量相同,即只能在定義該變量的函數內使用該變量。退出該函數后, 盡管該變量還繼續存在,但不能使用它。

  (3)允許對構造類靜態局部量賦初值。在數組一章中,介紹數組初始化時已作過說明。若未賦以初值,則由系統自動賦以0值。

  (4)對基本類型的靜態局部變量若在說明時未賦以初值,則系統自動賦予0值。而對自動變量不賦初值,則其值是不定的。 根據靜態局部變量的特點, 可以看出它是一種生存期為整個源程序的量。雖然離開定義它的函數后不能使用,但如再次調用定義它的函數時,它又可繼續使用, 而且保存了前次被調用后留下的值。 因此,當多次調用一個函數且要求在調用之間保留某些變量的值時,可考慮采用靜態局部變量。雖然用全局變量也可以達到上述目的,但全局變量有時會造成意外的副作用,因此仍以采用局部靜態變量為宜。

  [例5.15]main()

  {

  int i;

  void f(); /*函數說明*/

  for(i=1;i<=5;i++)

  f(); /*函數調用*/

  }

  void f() /*函數定義*/

  {

  auto int j=0;

  ++j;

  printf("%d\n",j);

  }

  程序中定義了函數f,其中的變量j 說明為自動變量并賦予初始值為0。當main中多次調用f時,j均賦初值為0,故每次輸出值均為1。現在把j改為靜態局部變量,程序如下:

  main()

  {

  int i;

  void f();

  for (i=1;i<=5;i++)

  f();

  }

  void f()

  {

  static int j=0;

  ++j;

  printf("%d\n",j);

  }

  void f()

  {

  static int j=0;

  ++j;

  printf("%d/n",j);

  }

  由于j為靜態變量,能在每次調用后保留其值并在下一次調用時繼續使用,所以輸出值成為累加的結果。讀者可自行分析其執行過程。

  2.靜態全局變量

  全局變量(外部變量)的說明之前再冠以static 就構成了靜態的全局變量。全局變量本身就是靜態存儲方式, 靜態全局變量當然也是靜態存儲方式。 這兩者在存儲方式上并無不同。這兩者的區別雖在于非靜態全局變量的作用域是整個源程序, 當一個源程序由多個源文件組成時,非靜態的全局變量在各個源文件中都是有效的。 而靜態全局變量則限制了其作用域, 即只在定義該變量的源文件內有效, 在同一源程序的其它源文件中不能使用它。由于靜態全局變量的作用域局限于一個源文件內,只能為該源文件內的函數公用, 因此可以避免在其它源文件中引起錯誤。從以上分析可以看出, 把局部變量改變為靜態變量后是改變了它的存儲方式即改變了它的生存期。把全局變量改變為靜態變量后是改變了它的作用域, 限制了它

  的使用范圍。因此static 這個說明符在不同的地方所起的作用是不同的。應予以注意。

  相關推薦:計算機等考二級C語言備考:C語言/C++編譯過程
       2010年計算機等級考試二級公共基礎知識教程
       考試吧:2010年計算機等考二級C預測題匯總
       全國計算機等考二級C語言:程序設計實戰匯總
文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。
主站蜘蛛池模板: 天天拍夜夜添久久精品免费 | 97秋霞| 在线视频一区二区三区四区 | 亚洲欧美中文字幕高清在线一 | 黄色片在线播放 | 色聚网久久综合 | 在线免费观看黄网站 | 人人爽人人爽人人片c | 免看一级a毛片一片成人不卡 | 久久精品国产久精国产果冻传媒 | 午夜刺激爽爽视频免费观看 | 久久综合精品视频 | 一级女人18毛片免费 | 免费高清毛片 | 日本欧美人xxxxx在线观看 | 一级毛片毛片毛毛片毛片 | 亚洲区小说区图片区qvod伊 | 成人福利网站在线看视频 | 欧美日韩在线国产 | 成人午夜私人影院入口 | 国产精品成人h片在线 | 最近免费的中文字幕一 | 成人免费看片视频色多多 | 日本福利视频一区 | 性欧美疯狂猛交69hd | 中文字幕欧美日韩 | 91桃色污 | 韩国理伦片在线理伦韩国 | 国产综合色在线视频区色吧图片 | 国产一区二区三区不卡免费观看 | 欧美极品另类xxx | 欧美成人看片 | 免费的一级片 | 一 级 黄 中国色 片 | 丰满寡妇一级毛片 | 天天操天天操天天干 | 狠狠色成人综合 | 一级做性色a爰片久久毛片免费 | 成人免费一区二区三区在线观看 | 成人小视频网 | 欧美性一区二区三区 |