1. 程式人生 > >C++學習筆記:C/C++中static關鍵詞有用途

C++學習筆記:C/C++中static關鍵詞有用途

C語言中:static關鍵詞有三種用途

1.靜態區域性變數

特點:

  1. 該變數在全域性資料區分配記憶體(區域性變數在棧區分配記憶體)

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

  3. 如果沒有顯式初始化,會被程式自動初始化為0(區域性變數不會被初始化)

  4. 靜態區域性變數始終留在全域性資料區明知道程式結束,但作用域始終在區域性作用域中。

2.靜態區域性變數

特點:

  1. 靜態全域性變數不能被其他檔案所用(全域性變數可以)

  2. 其他檔案中可以定義相同名字的變數,不會衝突(因為static作用於檔案)

3. 靜態函式

特點:

  1. 靜態函式不能被其他檔案所用(extern)

  2. 不同檔案定義相同靜態函式不會發生衝突

C++語言中:static關鍵詞有兩種用途

1.靜態資料成員

特點:

  1. 分配在全域性資料區,不佔用物件記憶體空間

  2. 靜態資料成員只初始化一次

2.靜態成員函式

特點:

  1. 靜態成員之間可以相互訪問

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

  3. 靜態成員函式不能訪問成員函式和成