勵志

勵志人生知識庫

static的作用是什麼

static」關鍵字在C和C++編程中主要有以下幾種作用:

修飾局部變數。當「static」用於局部變數時,該變數的生命周期被延長,其存儲位置從棧中移動到靜態存儲區。這樣的變數在函式執行完畢後不會立即銷毀,而是保持直到程式結束。這樣的變數被稱為靜態局部變數。雖然生命周期延長,但作用域仍然局限於定義它的函式或語句塊內。

修飾全局變數和函式。當「static」用於全局變數或函式時,它改變了這些全局元素的外部連結屬性,使其變為內部連結屬性。這意味著該全局變數或函式只能在聲明它的檔案內部訪問,其他檔案不能訪問。這樣做可以避免全局變數的命名衝突,並限制函式的可見性。

修飾類成員。在類中,靜態成員(包括變數和函式)與類的實例(對象)無關,而是直接與類相關。這意味著,即使沒有創建類的實例,也可以訪問靜態成員。靜態成員只在類外初始化一次,所有對象共享同一份靜態成員的副本。

初始化。靜態局部變數和靜態全局變數在聲明時如果沒有顯式初始化,編譯器會自動將其初始化為0(對於基本數據類型)。這是因為靜態變數在程式開始時創建,並在程式結束時銷毀。

總的來說,「static」關鍵字的作用是控制變數的存儲位置、生命周期和連結屬性,以及限制函式的可見性。