static關鍵字的用法

2021-10-08 20:43:53 字數 1157 閱讀 8854

static關鍵字的用途,可以從以下幾點分析:作用域和生命週期

對於完成的程式,在記憶體中的分布情況如下:

棧區:有編譯器自動分配釋放。像全域性變數、函式引數。會隨著作用域退出而釋放空間。

堆區:程式設計師分配並釋放的區域,像malloc(c), new(c++)。

全域性資料區(靜態區):全域性變數和靜態變數的儲存放在一塊的,初始化的全域性變數和靜態變數在一塊區域,為初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。程式結束時釋放。

1、靜態區域性變數:用於函式體內部修飾變數,這種變數的生存期直到程式關閉。

作用域:函式體內部 生存期:整個程式執行期間

靜態區域性變數的特點:1、該變數在全域性資料去分配記憶體(區域性變數在棧區分配記憶體);2、靜態區域性變數在程式執行到該物件的宣告處被首次初始化,即以後的函式呼叫不再初始化;3、靜態區域性變數一般在宣告處初始化,如果沒有顯示初始化,會被程式自動初始化為0(區域性變數不會被初始化,值為空);4、它始終駐留在全域性資料區,知道程式執行結束。但其作用域為區域性作用域,也就是不能在函式體外面使用它;

2、靜態全域性變數:定義在函式體外,用於修改全域性變數,表示該變數只在本檔案中可見。特點:靜態全域性變數不能被其他檔案使用(全域性變數可以);其他檔案中可以定義相同名字的變數,不會發生衝突;

3、靜態函式:靜態函式跟靜態全域性變數的作用類似,靜態函式不能被其他檔案所用,其他檔案中可以定義相同名字的函式,不會發生衝突。

4、靜態資料成員:用於修飾class的資料成員,即靜態成員。這種資料成員的生存期大於class物件(實體instance)。靜態資料成員是每個class有乙份,普通資料成員是每個instance有乙份,因此靜態資料成語也叫類變數,而普通資料成員也叫做例項變數。對於非靜態資料成員,由該型別的所有物件共享訪問,對該類的多個物件來說,靜態資料成員只一次記憶體。

5、靜態成員函式:1、靜態成員函式直接可以相互訪問,包括靜態成員函式訪問靜態成員和訪問靜態成員函式;2、非靜態成員函式可以任意的訪問靜態成員函式和靜態資料成員;3、靜態成員函式不能訪問非靜態成員函式和非靜態成員;

static關鍵字用法

static修飾區域性變數 static修飾全域性變數 二 c 中的static關鍵字 類中的static關鍵字 1 static 資料成員在類內資料成員的宣告前加上關鍵字static,該資料成員就是類內的靜態資料成員。include using namespace std class myclas...

Static關鍵字的用法

一 如果想不建立乙個類的例項物件就訪問改類的變數或方法,可以在改變量或方法前 static關鍵字 class man static string 男 string name public showname system.out.println name class call public stati...

static關鍵字的用法

static 靜態變數 1 static 修飾乙個屬性,放在方法區裡面 公共的區域 是類變數,隨著類的載入而載入static變數,該變數只有乙份,2 靜態資料不屬於物件,屬於類。3 static修飾方法 用類名呼叫。4 靜態物件的資料在全域性是唯一的,一改都改。如果你想要處理的東西是整個程式中唯一的...