全域性變數和static全域性變數的區別

時間 2021-07-08 21:43:55

1樓:安三羊舌凝然

static修飾的成員變數,在類載入的時候就會分配空間,從屬於類,所有的物件共享這一個變數;

而普通的成員變數從屬於物件,每個物件都有自己的變數;

2樓:旁丹聞晴霞

你說的普通全域性變數指的是包含在**塊中的?{}中,static{}與{}中**的區別在於static在例項化時只能被執行一次,比如定義student類

,再main方法中例項化兩次在static{}和{}分別寫一行列印語句,你會發現{}中列印輸出語句被執行了兩次static{}只有一行‘;’補充一下static{}中的最先執行;

3樓:匿名使用者

flag=0<*(tp-1) 雖然和這個是等價的 if(0<*(tp-1))flag=1

else flag=0

但型別要一致

4樓:匿名使用者

你這標題和內容貌似說的不是一個事情啊

你說的extern問題 extern要寫在你說的另一個檔案裡的關於你的問題補充,

1 是不是*(tp+1)的問題呢?

2 flag=0<*(tp+1)這句的後面是不是還有對flag的操作呢?那裡的操作要求flag是char型,可是被你宣告成int型了。

5樓:業餘收藏人

全域性變數的說明之前再加以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。

這兩者的區別雖在於非靜態全域性變數的作用域是整個源程式,當一個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是有效的。而靜態全域性變數則限制了其作用域,即只在定義該變數的原始檔內有效,在同一源程式的其它原始檔中不能使用它。由於靜態全域性變數的作用域侷限於一個原始檔內,只能為該原始檔內的函式公用,因此可以避免在其它原始檔中引起錯誤。

從以上分析可以看出,把區域性變數改變為靜態變數後是改變了它的儲存方式即改變了它的生存期。把全域性變數改變為靜態變數後是改變了它的作用域, 限制了它的使用範圍。

全域性變數和區域性變數的區別,全域性變數 靜態全域性變數 靜態區域性變數和區域性變數的區別

墨汁諾 一 用途不同 全域性變數 描述物件有什麼 在類中定義 類中所有方法都可以使用。區域性變數 臨時儲存資料 在類的方法中定義 只能在當前方法中使用。二 使用不同 全域性變數 整個類中可用 區域性變數 該方法內可用 三 初始值不同 全域性變數 有初始值 區域性變數 無初始值 擴充套件資料 使用全域...

js全域性變數無效,JS中全域性變數不能被函式讀取嗎?

var online new array 獲取qq號 var uin document ready function alert uin 所以到這裡沒有負值操作document.write 半緣修道半緣女 js全域性變數無效原因 如果在函式體外,帶var和不帶var都是全域性變數。如果在函式體內,帶...

如何跟全域性變數動態賦值,如何跟一個全域性變數動態賦值

在呼叫一個jquery的ajax方法時我們有時會需要該方法返回一個值或者給某個全域性變數賦值,可是我們發現程式執行完後並沒有獲取到我們想要的值,這時很有可能是因為你用的是ajax的非同步呼叫async true 預設情況 如 function managecommenttext text retur...