C作用域規(guī)則
發(fā)布時間:2023-06-06 10:50:32
局部變量
在某個函數(shù)或塊的內(nèi)部聲明的變量稱為局部變量。它們只能被該函數(shù)或該代碼塊內(nèi)部的語句使用。局部變量在函數(shù)外部是不可知的。下面是使用局部變量的實例。在這里,所有的變量 a、b 和 c 是 main() 函數(shù)的局部變量。
全局變量
全局變量是定義在函數(shù)外部,通常是在程序的頂部。全局變量在整個程序生命周期內(nèi)都是有效的,在任意的函數(shù)內(nèi)部能訪問全局變量。
全局變量可以被任何函數(shù)訪問。也就是說,全局變量在聲明后整個程序中都是可用的。
在程序中,局部變量和全局變量的名稱可以相同,但是在函數(shù)內(nèi),如果兩個名字相同,會使用局部變量值,全局變量不會被使用。
形式參數(shù)
函數(shù)的參數(shù),形式參數(shù),被當作該函數(shù)內(nèi)的局部變量,如果與全局變量同名它們會優(yōu)先使用。
全局變量與局部變量在內(nèi)存中的區(qū)別:
全局變量保存在內(nèi)存的全局存儲區(qū)中,占用靜態(tài)的存儲單元;
局部變量保存在棧中,只有在所在函數(shù)被調(diào)用時才動態(tài)地為變量分配存儲單元。
更多內(nèi)容可參考:C/C++ 中 static 的用法全局變量與局部變量
初始化局部變量和全局變量
當局部變量被定義時,系統(tǒng)不會對其初始化,您必須自行對其初始化。定義全局變量時,系統(tǒng)會自動對其初始化,如下所示:
數(shù)據(jù)類型 | 初始化默認值 |
---|---|
int | 0 |
char | '\0' |
float | 0 |
double | 0 |
pointer | NULL |
正確地初始化變量是一個良好的編程習慣,否則有時候程序可能會產(chǎn)生意想不到的結(jié)果,因為未初始化的變量會導致一些在內(nèi)存位置中已經(jīng)可用的垃圾值。
- 上一篇:干貨分享|什么是C函數(shù)
- 下一篇:盛圖科技|C語言運算符知識