標(biāo)題: C語(yǔ)言變量的作用域與存儲(chǔ)類(lèi)型 [打印本頁(yè)]

作者: 乖寶寶54    時(shí)間: 2020-2-15 22:36
標(biāo)題: C語(yǔ)言變量的作用域與存儲(chǔ)類(lèi)型
1 變量的定義三方面:
(1)數(shù)據(jù)類(lèi)型:占用內(nèi)存空間大。╥nt,double等)
(2)作用域:有效性范圍
(3)存儲(chǔ)類(lèi)型:在內(nèi)存的存儲(chǔ)方式
存儲(chǔ)類(lèi)型決定變量的生存期和作用域

2 在內(nèi)存中,供用戶(hù)使用的三種空間:
(1)程序區(qū):存放代碼
(2)靜態(tài)和動(dòng)態(tài)存儲(chǔ)區(qū):存放數(shù)據(jù)
a.靜態(tài)存儲(chǔ)區(qū):在編譯時(shí)就分配了內(nèi)存空間,在整個(gè)程序執(zhí)行中,內(nèi)存單元一直保持到程序結(jié)束才釋放
b.動(dòng)態(tài)存儲(chǔ)區(qū):只有當(dāng)程序執(zhí)行到變量所在的函數(shù)被調(diào)用時(shí),系統(tǒng)才為其分配內(nèi)存空間,函數(shù)調(diào)用結(jié)束,變量即被釋放,
  
  
  
何時(shí)分配內(nèi)存空間
  
  
何時(shí)釋放
  
  
生存期
  
  
靜態(tài)存儲(chǔ)區(qū)
  
  
在程序編譯時(shí)
  
  
程序結(jié)束
  
  
整個(gè)程序的運(yùn)行期間
  
  
動(dòng)態(tài)存儲(chǔ)區(qū)
  
  
只有當(dāng)程序執(zhí)行到變量所在的函數(shù)被調(diào)用時(shí)
  
  
函數(shù)調(diào)用結(jié)束
  
  
函數(shù)的調(diào)用期間
  


3 變量的分類(lèi)
(1)局部變量:在一個(gè)函數(shù)內(nèi)部或者某個(gè)復(fù)合語(yǔ)句內(nèi)部定義的變量
(2)全局變量:在所有函數(shù)外部定義的變量。(默認(rèn)初值為0)
  
  
  
作用域
  
  
存放區(qū)域
  
  
特點(diǎn)
  
  
局部變量
  
  
局限于定義它的函數(shù)或復(fù)合語(yǔ)句
  
  
動(dòng)態(tài)存儲(chǔ)區(qū)
  
  
在不同的函數(shù)中允許同名,
  
如果變量名相同,則當(dāng)前局部變量?jī)?yōu)先
  
  
全局變量
  
  
從定義變量的位置開(kāi)始到源程序結(jié)束
  
  
靜態(tài)存儲(chǔ)區(qū)
  
  


       


         
    • 若局部變量與全局變量同名,則局部變量?jī)?yōu)先,即在該函數(shù)或復(fù)合語(yǔ)句內(nèi),全局變量不起作用;
    • 如果要在變量定義之前使用它,需用extern加以聲明可擴(kuò)展全局變量作用域;
      
  



作者: karolyte    時(shí)間: 2020-2-16 12:12
受教了!
作者: 尼古拉斯-趙四    時(shí)間: 2020-2-18 19:34
局部變量一定存在動(dòng)態(tài)存儲(chǔ)區(qū),全局變量一定存在靜態(tài)存儲(chǔ)區(qū),這句話(huà)對(duì)嗎




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1