c static關鍵字用法總結

2021-09-26 20:52:13 字數 1594 閱讀 9064

也是因為在最近的面試中,幾乎每次必問static關鍵字的用法,但是總會說漏一點,因為自己平時寫**貌似用得也不多(菜雞嘛,可以理解)。要想答得完美,還是得總結一下,static共有五種用法,下次就直接背給面試官聽咯,不不不,得理解,用**說服之。

1、修飾區域性變數

位於靜態儲存區,作用域為區域性,但有點類似全域性變數了,即賦值一次後,就會一直儲存這個值,然後可以進行常規的運算,雖不能在區域性作用域外對他訪問,但仍然在記憶體中存放著。

void

fun(

)int

main()

2、修飾全域性變數

位於靜態儲存區,在整個程式執行期間一直存在,可以通過extern 變數名去訪問其他檔案的非靜態全域性變數(不需要include 標頭檔案),但是對於靜態全域性變數則不行。

static

int s_quanju =10;

void

fun(

)int

main()

3、修飾普通函式

在函式返回型別前加static,函式就定義為靜態函式。靜態函式只是在宣告他的檔案當中可見,不能被其他檔案所用。

static

void

fun();

//宣告

intmain()

void

fun(

)

啥時候用static:若全域性變數僅在單個檔案中可用,則宣告為static全域性變數,若全域性變數僅在單個函式內部可用,則宣告為static區域性變數。

4、修飾類成員變數

a.靜態成員可供所有的物件訪問,只分配一次記憶體,也只有乙份拷貝,對於每個物件都是一樣,它的值可以更新;

b.靜態成員儲存在全域性資料區,因此不能在類宣告中定義,但在使用前必須初始化(main函式外);

c.訪問:通過物件或者類名來訪問;

d.靜態成員的訪問符和普通成員一樣:public、protected、private;

class example};

int example:

:count =1;

//不能再main裡面初始化

intmain()

5、修飾類成員函式

a.與靜態類成員變數類似,它是類內部共同享用,和普通函式不同,靜態成員函式沒用this指標;

b.訪問:通過物件或者類名來訪問;

c.非靜態成員函式可以任意地訪問靜態成員函式和靜態資料成員,但反過來不行;

d.靜態成員之間可以相互訪問,包括靜態成員函式訪問靜態成員變數和靜態成員函式;

class example

static

void

fun1()

;void

fun2()

void

fun3()

;};void example:

:fun1()

C static關鍵字用法總結

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

c static 關鍵字用法

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

C static關鍵字用法

1.全域性靜態變數 在全域性變數前加上關鍵字static,全域性變數就被定義成為全域性靜態變數,存放在靜態儲存區,在整個程式的執行期間一直存在 初始化 未初始化的全域性靜態變數會被自動初始化為0 自動物件的值是任意的,除非他被顯示初始化 作用域 作用域發生改變,僅在當前檔案中有效。2.區域性靜態變數...