C語(yǔ)言:變量的作用域和生命周期詳解
1.全局變量和局部變量
定義在代碼塊外部的是全局變量
定義在代碼塊內(nèi)部的是局部變量
什么是代碼塊?
//這是代碼快外部
int main()
{
//這是代碼塊內(nèi)部
}
實(shí)際上用int main來(lái)演示是不太對(duì)的,實(shí)際使用的時(shí)候我們定義變量是在int main內(nèi)部定義的
下面這個(gè)例子更加清晰明了
int main()
{
int i = 0;//這是代碼塊外部-i全局變量
for(i=0;i<10;i++)
{//代碼塊開(kāi)始
int j=0;//這是代碼塊內(nèi)部-j局部變量
for(j=0;j<10;j++)
}//代碼塊結(jié)束
}
需要注意的是:
同一個(gè)變量a可以在全局,局部變量中間同時(shí)使用,局部變量?jī)?yōu)先
這里是指同時(shí)存在,同時(shí)使用,但不能同時(shí)定義
在局部的代碼塊中重新定義一個(gè)全局變量是錯(cuò)誤的
下面這種形式就是 同時(shí)使用一個(gè)變量
int main()
{
int sz = 8;
int i = 0;
if(i<sz)
{
i=1;
}
}
- 在我們定義變量的時(shí)候,變量的名字不能相同
- 同時(shí)變量的名字也不應(yīng)和庫(kù)函數(shù)名相同
簡(jiǎn)單的說(shuō)就是變量不要重復(fù),也別和庫(kù)函數(shù)沖突
2.變量的作用域
變量的作用域->變量的生效區(qū)域
- 局部變量只在它自己的代碼塊中生效
- 全局變量的作用域是整個(gè)代碼
注:在VS中全局變量的作用域是整個(gè)工程
作用域的規(guī)定了變量生效區(qū)域
如果你在局部變量的代碼塊外部使用這個(gè)局部變量
這樣是無(wú)效的,無(wú)法使用
2-1.聲明外部變量的方法
在vs中全局變量的作用域是整個(gè)工程
但是如果源文件不同,我們需要打一串聲明來(lái)應(yīng)用工程文件中另外一個(gè)源文件的全局變量
extern int a
以下是聲名變量和定義變量的代碼示例
extern int a;//聲明全局變量a int a; //定義全局變量a extern int a =0 ;//定義全局變量a 并給初始值 int a =0;//定義全局變量a,并給初始值
3.變量的生命周期
生命周期這個(gè)概念和作用域十分相似
- 局部變量的生命周期從進(jìn)入"{“開(kāi)始,離開(kāi)”}"結(jié)束
- 全局變量的生命周期是整個(gè)程序(VS項(xiàng)目)
4. 局部變量&自動(dòng)變量
局部變量又稱(chēng)自動(dòng)變量
auto int a = 0;
實(shí)際使用的時(shí)候我們一般都是省略auto的
總結(jié)
本片文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C語(yǔ)言實(shí)現(xiàn)個(gè)稅計(jì)算器
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)個(gè)稅計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
Opencv基于文字檢測(cè)去圖片水印的實(shí)現(xiàn)示例
去水印是個(gè)麻煩事,本文就來(lái)介紹一種方法Opencv基于文字檢測(cè)去圖片水印的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09
Vscode Remote Development遠(yuǎn)程開(kāi)發(fā)調(diào)試的實(shí)現(xiàn)思路
這篇文章主要介紹了Vscode Remote Development遠(yuǎn)程開(kāi)發(fā)調(diào)試的相關(guān)資料,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
CMake自動(dòng)管理C/C++項(xiàng)目的實(shí)現(xiàn)
CMake是一個(gè)強(qiáng)大的構(gòu)建系統(tǒng),用于跨平臺(tái)管理C/C++項(xiàng)目的編譯過(guò)程,本文主要介紹了CMake自動(dòng)管理C/C++項(xiàng)目的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2025-02-02
一篇文章帶你了解C++ static的作用,全局變量和局部變量的區(qū)別
這篇文章介紹了C++ static的作用,全局變量和局部變量的區(qū)別,需要的朋友可以過(guò)來(lái)參考下,希望能夠給你帶來(lái)幫助2021-09-09
C語(yǔ)言中查找字符在字符串中出現(xiàn)的位置的方法
這篇文章主要介紹了C語(yǔ)言中查找字符在字符串中出現(xiàn)的位置的方法,分別是strchr()函數(shù)和strrchr()函數(shù)的使用,需要的朋友可以參考下2015-08-08
一篇文章教你用C語(yǔ)言模擬實(shí)現(xiàn)字符串函數(shù)
這篇文章主要介紹了C語(yǔ)言模擬實(shí)現(xiàn)字符串函數(shù),開(kāi)發(fā)程序的時(shí)候經(jīng)常使用到一些字符串函數(shù),例如求字符串長(zhǎng)度,拷貝字符串……,需要的朋友可以參考下2021-09-09

