6 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
靜態(tài)變量,就是在定義的時(shí)候,有static 修飾的變量,形式為
static TYPE var_name = init_value;
而動(dòng)態(tài)變量,形式為
TYPE var_name = init_value;
即沒(méi)有static 修飾。其中的=init_value均可省略。
區(qū)分定義在函數(shù)外的全局變量,和函數(shù)內(nèi)的局部變量,作用域,生命周期,及無(wú)顯式初始化時(shí)的初始值,均有區(qū)別。
1 動(dòng)態(tài)全局變量:
作用域?yàn)檎麄€(gè)項(xiàng)目,即最終編譯成可執(zhí)行文件的所有文件中均可以使用動(dòng)態(tài)全局變量。
生命周期為從程序運(yùn)行到程序退出,即貫穿整個(gè)運(yùn)行時(shí)間。
無(wú)顯式初始化時(shí)默認(rèn)初始化值為0。
2 靜態(tài)全局變量:
作用域?yàn)楫?dāng)前文件,從定義/聲明位置到文件結(jié)尾。
生命周期為從程序運(yùn)行到程序退出,即貫穿整個(gè)運(yùn)行時(shí)間。
無(wú)顯式初始化時(shí)默認(rèn)初始化值為0。
3 動(dòng)態(tài)局部變量:
作用域?yàn)楫?dāng)前函數(shù),從定義位置,到其所在的{}的結(jié)束位置。
生命周期為從函數(shù)調(diào)用到函數(shù)退出。
無(wú)顯式初始化時(shí)默認(rèn)初始化值為隨機(jī)值。
4 靜態(tài)局部變量:
作用域?yàn)楫?dāng)前函數(shù),從定義位置,到其所在的{}的結(jié)束位置。
生命周期為從程序運(yùn)行到程序退出,即貫穿整個(gè)運(yùn)行時(shí)間,當(dāng)下次函數(shù)調(diào)用時(shí),靜態(tài)局部變量不會(huì)被再次初始化,而是沿用上次函數(shù)退出時(shí)的值。
無(wú)顯式初始化時(shí)默認(rèn)初始化值為0。

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
全局變量聲明之前加上static,就是靜態(tài)全局變量。全局變量和靜態(tài)全局變量都是靜態(tài)存儲(chǔ)的;在存儲(chǔ)上無(wú)區(qū)別。區(qū)別在于他們的作用域;全局變量的作用域是整個(gè)源程序,當(dāng)源程序有多個(gè)源文件組成時(shí),全局變量在各個(gè)源程序文件都是有效的;而靜態(tài)全局變量怎被限制了作用域,只在定義該變量的源文件內(nèi)有用在同一程序的其他源文件不能使用!
還有靜態(tài)全局變量只初始化一次,防止在其他源文件調(diào)用!而全局變量可以再其他源文件初始化??!

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
靜態(tài)變量,就是在定義的時(shí)候,有static 修飾的變量,形式為
static TYPE var_name = init_value;
而動(dòng)態(tài)變量,形式為
TYPE var_name = init_value;
即沒(méi)有static 修飾。其中的=init_value均可省略。
區(qū)分定義在函數(shù)外的全局變量,和函數(shù)內(nèi)的局部變量,作用域,生命周期,及無(wú)顯式初始化時(shí)的初始值,均有區(qū)別。
1 動(dòng)態(tài)全局變量:
作用域?yàn)檎麄€(gè)項(xiàng)目,即最終編譯成可執(zhí)行文件的所有文件中均可以使用動(dòng)態(tài)全局變量。
生命周期為從程序運(yùn)行到程序退出,即貫穿整個(gè)運(yùn)行時(shí)間。
無(wú)顯式初始化時(shí)默認(rèn)初始化值為0。
2 靜態(tài)全局變量:
作用域?yàn)楫?dāng)前文件,從定義/聲明位置到文件結(jié)尾。
生命周期為從程序運(yùn)行到程序退出,即貫穿整個(gè)運(yùn)行時(shí)間。
無(wú)顯式初始化時(shí)默認(rèn)初始化值為0。
3 動(dòng)態(tài)局部變量:
作用域?yàn)楫?dāng)前函數(shù),從定義位置,到其所在的{}的結(jié)束位置。
生命周期為從函數(shù)調(diào)用到函數(shù)退出。
無(wú)顯式初始化時(shí)默認(rèn)初始化值為隨機(jī)值。
4 靜態(tài)局部變量:
作用域?yàn)楫?dāng)前函數(shù),從定義位置,到其所在的{}的結(jié)束位置。
生命周期為從程序運(yùn)行到程序退出,即貫穿整個(gè)運(yùn)行時(shí)間,當(dāng)下次函數(shù)調(diào)用時(shí),靜態(tài)局部變量不會(huì)被再次初始化,而是沿用上次函數(shù)退出時(shí)的值。
無(wú)顯式初始化時(shí)默認(rèn)初始化值為0。

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
全局變量聲明之前加上static,就是靜態(tài)全局變量。全局變量和靜態(tài)全局變量都是靜態(tài)存儲(chǔ)的;在存儲(chǔ)上無(wú)區(qū)別。區(qū)別在于他們的作用域;全局變量的作用域是整個(gè)源程序,當(dāng)源程序有多個(gè)源文件組成時(shí),全局變量在各個(gè)源程序文件都是有效的;而靜態(tài)全局變量怎被限制了作用域,只在定義該變量的源文件內(nèi)有用在同一程序的其他源文件不能使用!
還有靜態(tài)全局變量只初始化一次,防止在其他源文件調(diào)用!而全局變量可以再其他源文件初始化!

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
局部變量和全局變量
定義位置 存儲(chǔ)區(qū) 初值
局部變量 函數(shù)內(nèi)部
(含形參) 動(dòng)態(tài)存儲(chǔ)區(qū) 除形參外,隨機(jī)值
全局變量 函數(shù)外部 靜態(tài)存儲(chǔ)區(qū) 0
生命期(作用范圍):
局部變量 只有所在函數(shù)可以使用。所在函數(shù)執(zhí)行開(kāi)始:系統(tǒng)分配內(nèi)存單元;
所在函數(shù)執(zhí)行完畢:系統(tǒng)回收內(nèi)存單元。
全局變量 從定義處至文件尾的所有函數(shù)都可引用。一般置于文件開(kāi)始處。
程序執(zhí)行開(kāi)始:系統(tǒng)分配內(nèi)存單元;程序執(zhí)行完畢:系統(tǒng)回收內(nèi)存單 元。
- 6 回答
- 0 關(guān)注
- 736 瀏覽
添加回答
舉報(bào)