c static 關鍵字總結

2022-09-13 15:36:11 字數 956 閱讀 7906

1. 靜態全域性變數

在全域性變數之間加上static關鍵字,就被定義為靜態全域性變數。

特點:在全域性資料區分配記憶體

未初始化則被自動初始化為0

在宣告它的檔案內可見,在宣告它之外的檔案不可見,其他檔案中可使用同名變數

2. 靜態區域性變數

在區域性變數前加上static關鍵字,就被定義為靜態區域性變數

特點:在全域性資料區分配記憶體,但是作用域為區域性作用域

一般在宣告時初始化,只能被顯示初始化一次,以後呼叫該函式時不被初始化 

若未顯示初始化,初始化為0

3.靜態函式

在函式返回型別前加上static關鍵字,就被定義為靜態函式

特點:只在宣告它的檔案中可見,在其他檔案中不可見

其他檔案中可以有與之同名的函式

4.靜態資料成員

在類資料成員宣告前加上static關鍵字,就被定義為靜態資料成員

特點:無論類物件有多少個,靜態資料成員只有乙份拷貝,被所有物件共享訪問,只分配一次記憶體,值可以更新

靜態資料成員儲存在全域性資料區,在定義時要分配空間,所以不能在宣告時定義(賦值),可以在宣告第乙個物件時初始化,格式為

<資料型別><類名>::<靜態資料成員名>=<值>,該初始化可以放在類定義裡,這樣類宣告物件時即可初始化

靜態資料成員遵守public,private,protect訪問規則

同全域性變數相比,可以實現資訊隱藏,而且由於沒有進入全域性名字空間,所以不會有命名衝突

5.靜態成員函式

在類成員函式前加入static關鍵字,就被定義為靜態成員函式

特點:為類服務而不是為某個物件服務,是類的內部實現,屬於類定義的一部分

由於靜態成員函式不與類物件聯絡,所以不存在預設的this指標,所以也無法訪問非靜態資料成員,也無法訪問非靜態成員函式

除了使用成員訪問操作符(.和->)外還可以直接訪問靜態成員函式,格式為<類名>::<靜態成員函式名>(<參數列>)

C static關鍵字用法總結

c static 關鍵字用法總結 1.首先解釋一下static 是什麼意思?static 是靜態的意思,既然是靜態,就是不變的,而不變就是他不會因為類中例項化物件的不同而不同,它在類中永遠只有乙份,就像中國人有許多,但我們只有乙個國家中國。2 由static 修飾的歸屬問題 由static 修飾的不...

C static關鍵字作用總結

c 中static關鍵字作用總結 1.先來介紹它的第一條也是最重要的一條 隱藏。static函式,static變數均可 當同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性。舉例來說明。同時編譯兩個原始檔,乙個是a.c,另乙個是main.c。複製 char a a gl...

c static關鍵字用法總結

也是因為在最近的面試中,幾乎每次必問static關鍵字的用法,但是總會說漏一點,因為自己平時寫 貌似用得也不多 菜雞嘛,可以理解 要想答得完美,還是得總結一下,static共有五種用法,下次就直接背給面試官聽咯,不不不,得理解,用 說服之。1 修飾區域性變數 位於靜態儲存區,作用域為區域性,但有點類...