static關鍵字的用法筆記

2021-09-28 17:24:57 字數 1157 閱讀 5345

如果加了static,就會對其它原始檔隱藏。例如在a和msg的定義前加上static,main.c就看不到它們了。利用這一特性可以在不同的檔案中定義同名函式和同名變數,而不必擔心命名衝突。static可以用作函式和變數的字首,對於函式來講,static的作用僅限於隱藏,而對於變數,static還有下面兩個作用。

(2)static的第二個作用是保持變數內容的持久。儲存在靜態資料區的變數會在程式剛開始執行時就完成初始化,也是唯一的一次初始化。共有兩種變數儲存在靜態儲存區:全域性變數和static變數,只不過和全域性變數比起來,static可以控制變數的可見範圍,說到底static還是用來隱藏的。雖然這種用法不常見,但我還是舉乙個例子。

複製****如下:

#include

int fun(void)

int count = 1;

int main(void)

程式的執行結果如下

複製****如下:

integer: 0; string: (begin)(end)

最後對static的三條作用做一句話總結。首先static的最主要功能是隱藏,其次因為static變數存放在靜態儲存區,所以它具備永續性和預設值0。

以上內容出自mr. write之手,寫的相當清晰易懂,存檔方便複習。

下面是中興通訊2012校招筆試題的一道問答題:

static全域性變數與普通的全域性變數有什麼區別 ?

全域性變數(外部變數)的說明之前再冠以static 就構成了靜態的全域性變數。

全域性變數本身就是靜態儲存方式, 靜態全域性變數當然也是靜態儲存方式。 這兩者在儲存方式上並無不同。

這兩者的區別在於非靜態全域性變數的作用域是整個源程式, 當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是有效的。 而靜態全域性變數則限制了其作用域, 即只在定義該變數的原始檔內有效, 在同一源程式的其它原始檔中不能使用它。由於靜態全域性變數的作用域侷限於乙個原始檔內,只能為該原始檔內的函式公用,因此可以避免在其它原始檔中引起錯誤。

static全域性變數只初使化一次,防止在其他檔案單元中被引用;

static區域性變數和普通區域性變數有什麼區別 ?

把區域性變數改變為靜態變數後是改變了它的儲存方式即改變了它的生存期。把全域性變數改變為靜態變數後是改變了它的作用域,限制了它的使用範圍。

static區域性變數只被初始化一次,下一次依據上一次結果值;

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 靜態物件的資料在全域性是唯一的,一改都改。如果你想要處理的東西是整個程式中唯一的...