C static關鍵字用法

2021-09-28 14:27:21 字數 1049 閱讀 9862

1.全域性靜態變數

在全域性變數前加上關鍵字static,全域性變數就被定義成為全域性靜態變數,存放在靜態儲存區,在整個程式的執行期間一直存在

初始化:未初始化的全域性靜態變數會被自動初始化為0(自動物件的值是任意的,除非他被顯示初始化)

作用域:作用域發生改變,僅在當前檔案中有效。

2.區域性靜態變數

在區域性變數之前加上static關鍵字,區域性變數就成為區域性靜態變數,存放在靜態儲存區。

初始化:未初始化的全域性靜態變數會被自動初始化為0

作用域:作用域沒有發生改變,當定義它的函式或者語句塊結束,作用域結束。但是當區域性靜態變數離開作用域後,並不會被銷毀,任然存在記憶體中,只是不能進行訪問,直到該函式再次被呼叫,並且值不變,也就是它的生命週期改變了,跟隨整個程式

3.靜態函式

在函式的返回值前加上static,函式則被定義為靜態函式。函式的宣告和定義在預設情況下都是extern的,但是靜態函式只在宣告它的檔案中可見,不能被其他檔案使用。

函式的實現使用static修飾,那麼這個函式只能在cpp檔案中使用,不會與其他函式中的同名函式起衝突。

作用域:改變函式的作用域,使其在當前檔案有效

警告:不要再標頭檔案宣告static的全域性函式,不要在cpp內宣告非static的全域性函式,若果在多個cpp內復用該函式,就把他的宣告放到標頭檔案中,否則cpp內部宣告需要加上static修飾。

4.類的靜態成員

使用static修飾的成員變數稱為靜態成員變數,是類的屬性,不屬於某乙個具體的物件;所有類物件共享,不會影響該類的sizeof的結果,在類中只是宣告,必須將其放在類外進行初始化

5.類的靜態函式

本質:靜態成員函式沒有隱藏的this指標

靜態成員函式與靜態成員變數一樣,都屬於類的靜態成員,他們都不是物件成員。因此對靜態成員的引用都不需要物件名

在靜態成員函式的實現中不能直接引用類中宣告的非靜態成員變數。如果靜態成員函式中需要引用非靜態成員變數時,可以通過物件來引用。

c static 關鍵字用法

一 static 變數 static變數大致分為三種用法 1.用於區域性變數中,成為靜態區域性變數.靜態區域性變數有兩個用法,記憶功能和全域性生存期.2.用於全域性變數,主要作用是限制此全域性變數被其他的檔案呼叫 3.用於類中的成員.表示這個成員是屬於這個類但是不屬於類中任意特定物件 1.靜態區域性...

C static關鍵字用法

1 被static關鍵字修飾的全域性函式或者變數具有檔案作用域,即只在當前檔案中可見。2 被static修飾的變數會被儲存在靜態儲存區,生命週期也為從定義直至程式結束。對於區域性變數,即使在函式退出後該靜態變數依然存在,然而卻也無法訪問。此外,static修飾的變數一生只會被初始化一次 這點經常被用...

c static 關鍵字用法

自 一 static 變數static變數大致分為三種用法 1.用於區域性變數中,成為靜態區域性變數.靜態區域性變數有兩個用法,記憶功能和全域性生存期.2.用於全域性變數,主要作用是限制此全域性變數被其他的檔案呼叫.3.用於類中的成員.表示這個成員是屬於這個類但是不屬於類中任意特定物件 1.靜態區域...