在C語言中,用static聲明局部變量
提問人:楊紫紅發(fā)布時間:2020-11-16
函數(shù)中變量的值在函數(shù)調(diào)用結(jié)束后不消失而保留原值,在下次該函數(shù)調(diào)用時,該變量已有值,即為上一次函數(shù)調(diào)用結(jié)束時的值。該局部變量為靜態(tài)局部變量。
說明:
1、靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期都不釋放。自動變量屬于動態(tài)存儲類別,占動態(tài)存儲區(qū)空間,函數(shù)調(diào)用結(jié)束后即釋放。
2、對靜態(tài)局部變量在編譯時賦初值,程序運行時,它已有初值,以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值。對自動變量賦初值,不是在編譯時進行的,而是在函數(shù)調(diào)用時進行,每調(diào)用一次函數(shù)重新給一次初值。
3、對靜態(tài)局部變量來說,如不賦初值,編譯時自動賦初值0或空字符。
對自動變量來說,如不賦初值,它的值是一個不確定的值。
4、雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)不能引用。
說明:
1、靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期都不釋放。自動變量屬于動態(tài)存儲類別,占動態(tài)存儲區(qū)空間,函數(shù)調(diào)用結(jié)束后即釋放。
2、對靜態(tài)局部變量在編譯時賦初值,程序運行時,它已有初值,以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值。對自動變量賦初值,不是在編譯時進行的,而是在函數(shù)調(diào)用時進行,每調(diào)用一次函數(shù)重新給一次初值。
3、對靜態(tài)局部變量來說,如不賦初值,編譯時自動賦初值0或空字符。
對自動變量來說,如不賦初值,它的值是一個不確定的值。
4、雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)不能引用。
繼續(xù)查找其他問題的答案?
相關(guān)視頻回答
點擊加載更多評論>>