計(jì)算機(jī)二級C語言中用戶標(biāo)識符的作用域和存儲類考點(diǎn)歸納
第12章 C語言中用戶標(biāo)識符的作用域和存儲類考點(diǎn)歸納
12.1 局部變量和全局變量
在函數(shù)內(nèi)部或復(fù)合語句內(nèi)部定義的變量稱為局部變量。函數(shù)的形參屬于局部變量。在函數(shù)外部定義的變量稱為全局變量。有時,局部變量也稱為內(nèi)部變量,全局變量也稱為外部變量。
12.2 變量的存儲屬性(自動、靜態(tài)、寄存器、外部),變量的作用域和生存期
C語言中來說明變量存儲屬性的關(guān)鍵字有四個:auto(自動)、static(靜態(tài))、register(寄存器)、extern(外部)。
1.局部變量的存儲屬性
局部變量可以是自動類別(用auto,register說明),也可以是靜態(tài)類別(用static說明)。形參只能是自動存儲類別,不允許是static類別。
當(dāng)局部變量未指明類別時,被自動說明成自動(auto)變量。這類局部變量稱為自動變量。其值存放在內(nèi)存的動態(tài)存儲區(qū),因此在退出作用域后,變量被自動釋放,其值不予保留。
當(dāng)局部變量說明成寄存器(register)類型時,與自動(auto)變量一樣屬于自動類別,所不同的是此時變量的值保留在CPU中的寄存器中。
當(dāng)變量說明成static(靜態(tài))類型時,稱這樣的變量為靜態(tài)局部變量。在程序運(yùn)行期間,它占據(jù)一個永久的存儲單元,在函數(shù)退出后,變量的值仍舊保留。
2.全局變量的存儲屬性
全局變量都屬于靜態(tài)存儲類別,可以用extern和static對它們進(jìn)行說明。
當(dāng)一個文件中要引用另一文件中的全局變量或在全局變量定義前要引用它時,可用extern說明。相當(dāng)于擴(kuò)大全局變量的作用域。
用static(靜態(tài))說明的全局變量稱為靜態(tài)全局變量,它僅能由本文件引用,即使在其文件中用extern說明也不能使用,它相當(dāng)于限制了全局變量作用域的擴(kuò)展。
12.3 內(nèi)部函數(shù)和外部函數(shù)
1.在C語言中,所有的函數(shù)在本質(zhì)上都是外部函數(shù)。
2.函數(shù)定義時用extern進(jìn)行說明稱為外部函數(shù)。函數(shù)的隱含類別為外部函數(shù),外部函數(shù)可以被其他文件調(diào)用。
3.定義函數(shù)時用static進(jìn)行說明稱為靜態(tài)函數(shù),也稱內(nèi)部函數(shù)。靜態(tài)函數(shù)也是外部函數(shù),只是它僅局限于它所在的文件,其他文件不能調(diào)用。
時間:2012-03-09 責(zé)任編輯:admin
上一條:計(jì)算機(jī)二級C語言對函數(shù)的進(jìn)一步討論考點(diǎn)歸納
下一條:計(jì)算機(jī)二級C語言編譯預(yù)處理和動態(tài)存儲分配考點(diǎn)歸納
下一條:計(jì)算機(jī)二級C語言編譯預(yù)處理和動態(tài)存儲分配考點(diǎn)歸納
相關(guān)文章
無相關(guān)信息