在定義一個全域變數時,若沒有寫存盤類別,比如在外部定義int a; ,那a默認是static還是extern啊? 全域變數存盤類別默認為什么?
uj5u.com熱心網友回復:
有人嗎
我暈了
uj5u.com熱心網友回復:
之前有看到默認是static 感到不太確定uj5u.com熱心網友回復:
全域變數默認情況下和static還有extern都不同。所以全域變數沒有默認存盤類別。
uj5u.com熱心網友回復:
全域位置的int a; 分配空間建立全域變數并初始化為0,并慷慨地允許其他檔案使用這個變數。
static int a; 分配空間建立全域變數并初始化為0,并禁止其他檔案分享該變數。
extern int a; 這個出現在“其他檔案”里面,并不分配空間建立變數,而是把上面第一行那個變數介紹到本檔案來發揮作用。
uj5u.com熱心網友回復:
全域變數就是全域變數,修飾符extern用在變數或者函式的宣告前,用來說明“此變數/函式是在別處定義的,要在此處參考”其他檔案可使用extern來參考同一個變數。static是靜態存盤的意思。在開頭宣告該檔案可用。在代碼塊中使用只能在代碼塊中可見,和代碼塊中堆疊的變數區別是,堆疊中宣告的變數會清理,比如while里宣告的int變數一個回圈后會被重新創建,而static的變數值不變,而且不會消除,重新創建。程式存在static變數存在。uj5u.com熱心網友回復:
謝謝 老鐵 我懂了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/251848.html
標籤:C語言
上一篇:求教C++列印圖形:輸入N,按規律列印圖形。保證N<10
下一篇:C語言
