C 中static用法總結

2021-10-06 07:25:35 字數 1117 閱讀 7726

1)c 語言的 static 關鍵字有三種:

1.靜態區域性變數;

2.靜態全域性變數;

3.靜態函式

(注:對應於上面,static修飾普通變數分為靜態區域性和靜態全域性兩種。靜態全域性變數和靜態函式的作用類似,均只在本檔案內可見,不能為其他檔案所用,故其實也可以將靜態全域性變數和靜態函式作為一類,而靜態區域性變數為另一類。)

2)c++ 語言的 static 關鍵字新增兩種:

4.靜態資料成員;

5.靜態成員函式。

#重要知識點總結#

1) 靜態區域性變數的特點:1.該變數在全域性資料區分配記憶體(區域性變數在棧區分配記憶體);

2.靜態區域性變數在程式執行到該物件的宣告處時被首次初始化,即以後的函式呼叫不再進行初始化(區域性變數每次函式呼叫都會被初始化);

3.靜態區域性變數一般在宣告處初始化,如果沒有顯式初始化,會被程式自動初始化為0(區域性變數不會被初始化);

4.它始終駐留在全域性資料區,直到程式執行結束。但其作用域為區域性作用域,也就是不能在函式體外面使用它(區域性變數在棧區,在函式結束後立即釋放記憶體);

2) 靜態成員函式的特點:1.靜態成員之間可以相互訪問,包括靜態成員函式訪問靜態資料成員和訪問靜態成員函式;

2.非靜態成員函式可以任意地訪問靜態成員函式和靜態資料成員;

3.靜態成員函式不能訪問非靜態成員函式和非靜態資料成員;

4.呼叫靜態成員函式,可以用成員訪問操作符(.)和(->)為乙個類的物件或指向類物件的指標呼叫靜態成員函式,也可以用類名::函式名呼叫(因為他本來就是屬於類的,用類名呼叫很正常)

5. 靜態成員函式沒有this指標,它無法訪問屬於類物件的非靜態資料成員,也無法訪問非靜態成員函式,它只能呼叫其餘的靜態成員函式

6.出現在類體外的函式定義不能指定關鍵字static

C語言 static 用法總結

只能被模組內的函式呼叫,不能被模組外的函式呼叫。模組可以理解為當前.c檔案。靜態函式會被自動分配在乙個一直使用的儲存區,直到退出應用程式例項,避免了呼叫函式時壓棧出棧,速度快很多。這句話有待驗證 2.1 作用範圍 只能在當前.c檔案中使用。2.2 儲存位置 靜態資料區。2.3 生命週期 整個程式執行...

static用法總結

static static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域...

static用法總結

static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數 在...