C語(yǔ)言基礎(chǔ)全局變量與局部變量教程詳解
一:局部變量與全局變量
1.1:局部變量
局部變量:在函數(shù)內(nèi)部定義的變量 ,auto可加可不加
作用域:從定義到本函數(shù)結(jié)束
生命周期:從定義到該函數(shù)結(jié)束
1.2:全局變量
全局變量:在函數(shù)外部定義的變量、所以存在數(shù)據(jù)區(qū)
作用域:項(xiàng)目中所有文件 。
注意:在其他文件中使用需要聲明,且不可重名extern int a,extern是關(guān)鍵字,專(zhuān)用來(lái)聲明外部符號(hào)。
生命周期:程序開(kāi)始創(chuàng)建到程序結(jié)束銷(xiāo)毀。
1.3:代碼解釋
注:當(dāng)局部變量與全局變量同名時(shí),局部變量?jī)?yōu)先使用。
1.4:const修飾的變量的修改
全局變量
直接修改 失敗
間接修改 失敗 原因放在常量區(qū),受到保護(hù)。
局部變量
直接修改 失敗
間接修改 成功 原因放在棧上 局部變量存在棧區(qū)。
詳情見(jiàn)我的C語(yǔ)言指針基礎(chǔ)篇
二:靜態(tài)局部變量與靜態(tài)全局變量
2.1:static關(guān)鍵字
static :
修飾局部變量:其實(shí)是改變了局部變量的存儲(chǔ)類(lèi)型,(從棧區(qū)到靜態(tài)區(qū))。從而使得靜態(tài)的局部變量除出了作用域也不會(huì)銷(xiāo)毀。對(duì)于局部變量 其實(shí)有一個(gè)“保值”的作用。
修飾全局變量:一個(gè)全局變量在整個(gè)工程的其他文件內(nèi)部都可以使用,是因?yàn)槿肿兞坑型獠挎溄訉傩裕?dāng)static修飾時(shí),外部鏈接屬性就變成了內(nèi)部鏈接屬性,使這個(gè)全局變量只能在自己的源文件內(nèi)部使用,其他文件不可使用。
2.2:靜態(tài)局部變量
靜態(tài)局部變量:在函數(shù)內(nèi)部定義的變量,使用static修飾,保存一個(gè)值在靜態(tài)區(qū)(保值)。
作用域:當(dāng)前函數(shù)中。
生命周期:程序開(kāi)始創(chuàng)建到程序結(jié)束銷(xiāo)毀
靜態(tài)局部變量只會(huì)初始化一次 可以多次賦值
在數(shù)據(jù)區(qū)進(jìn)行存儲(chǔ)(靜態(tài)區(qū))
2.3:靜態(tài)全局變量
靜態(tài)全局變量:在函數(shù)外部定義的變量,使用static修飾,可以在本文件中使用,不可再同一項(xiàng)目的其它文件中使用。
作用域:當(dāng)前文件中。
生命周期:程序開(kāi)始創(chuàng)建到程序結(jié)束銷(xiāo)毀。
注:全局變量、靜態(tài)局部變量、靜態(tài)全局變量如果未初始化系統(tǒng)會(huì)默認(rèn)初始化值為0。但是局部變量需要初始化。
2.4:匯總
三:全局函數(shù)與靜態(tài)函數(shù)
3.1:全局函數(shù)
全局函數(shù):沒(méi)有任何修飾的函數(shù)。
作用域:項(xiàng)目中所有文件(其他文件使用時(shí)也需要聲明)。
生命周期:程序開(kāi)始創(chuàng)建到程序結(jié)束銷(xiāo)毀。
3.2:靜態(tài)函數(shù)
靜態(tài)函數(shù):使用static修飾的函數(shù)。
作用域:當(dāng)前文件中。
生命周期:程序開(kāi)始創(chuàng)建到程序結(jié)束。
注:靜態(tài)函數(shù)可以和全局函數(shù)重名 ,也服從就近原則。
3.3:匯總表
以上就是C語(yǔ)言基礎(chǔ)全局變量與局部變量教程詳解的詳細(xì)內(nèi)容,更多關(guān)于C語(yǔ)言基礎(chǔ)全局與局部變量的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解析C++浮點(diǎn)數(shù)無(wú)效值的定義與無(wú)效值判定的小結(jié)
本篇文章是對(duì)C++中浮點(diǎn)數(shù)無(wú)效值的定義與無(wú)效值的判定進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C++使用new和delete進(jìn)行動(dòng)態(tài)內(nèi)存分配與數(shù)組封裝
這篇文章主要介紹了C++使用new和delete進(jìn)行動(dòng)態(tài)內(nèi)存分配與數(shù)組封裝,運(yùn)行期間才能確定所需內(nèi)存大小,此時(shí)應(yīng)該使用new申請(qǐng)內(nèi)存,下面我們就進(jìn)入文章學(xué)習(xí)具體的操作方法,需要的小伙伴可以參考一下2022-03-03C語(yǔ)言線(xiàn)性表的順序表示與實(shí)現(xiàn)實(shí)例詳解
這篇文章主要介紹了C語(yǔ)言線(xiàn)性表的順序表示與實(shí)現(xiàn)實(shí)例詳解,對(duì)于學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法的朋友很有參考借鑒價(jià)值,需要的朋友可以參考下2014-07-07C++對(duì)象內(nèi)存分布詳解(包括字節(jié)對(duì)齊和虛函數(shù)表)
下面小編就為大家?guī)?lái)一篇C++對(duì)象內(nèi)存分布詳解(包括字節(jié)對(duì)齊和虛函數(shù)表)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12詳解如何將Spire.PDF for C++集成到C++程序中
Spire.PDF for C++ 是一個(gè)專(zhuān)業(yè)的 PDF 庫(kù),供開(kāi)發(fā)人員在任何類(lèi)型的 C++ 應(yīng)用程序中閱讀、創(chuàng)建、編輯和轉(zhuǎn)換 PDF 文檔,本文主要介紹了兩種不同的方式將 Spire.PDF for C++ 集成到您的 C++ 應(yīng)用程序中,希望對(duì)大家有所幫助2023-11-11