static修飾變數

2021-08-20 09:49:02 字數 1350 閱讀 4865

如果乙個變數變static修飾,會產生什麼樣的結果?

(1)static修飾區域性變數:

例如:

#include void test()

int main ()

return 0;

}

執行結果為:

當a被static修飾之後:

#include void test()

int main ()

return 0;

}

執行結果為:

即static修飾乙個普通的區域性變數改變了這個變數的生命週期,這個變數的生命週期和程式的生命週期相同,直到程式結束才銷毀。

(2)static修飾全域性變數:

在vs中新建乙個專案,新增兩個原始檔,分別命名為1.c和2.c,

#include //原始檔1.c中的**

int a = 2018;//a為全域性變數

#include //原始檔2.c中的**

extern int a;

int main()

執行結果為:

當a被static修飾後:

#include //原始檔1.c中的**

int a = 2018;//a為全域性變數

#include //原始檔2.c中的**

extern int a;

int main()

在除錯過程中出現了錯誤:1.無法解析的外部命令。2.無法解析的外部符號a。

#include //原始檔1.c中的**

static int a = 2018;

void test()

#include //原始檔2.c中的**

extern void test();

int main()

此時執行結果為:

即static修飾全域性變數

1.使得這個全域性變數只能在當前原始檔內使用,不能在其他原始檔使用。

2.改變了全域性變數的作用域。



static修飾成員變數

static 靜態 修飾符 static修飾成員變數 如果乙個資料需要被所有物件共享使用的時候,那麼即可使用static修飾該成員變數。訪問方式 方式1 可以使用物件進行訪問。格式 物件.靜態屬性名 方式2 可以使用類名進行訪問。格式 類名.屬性名。靜態成員變數要注意的細節 1.靜態的成員變數可以使...

static修飾的變數特點

不加static修飾的成員變數又叫物件變數。成員變數和類變數的區別 1 兩個變數的生命週期不同 成員變數隨著物件的建立而存在,隨著物件的 而釋放。靜態變數隨著類的載入而存在,隨著類的消失而消失。2 呼叫方式不同 成員變數只能被物件呼叫。靜態變數可以被物件呼叫,還可以被類名呼叫。3 別名不同 成員變數...

static修飾全域性區域性變數函式

1.static修飾全域性變數 特點如下 1 儲存區 靜態儲存區靜態儲存區在整個程式執行期間都存在 2 作用域 全域性靜態變數在宣告他的檔案之外是不可見的。準確地講從定義之處開始到檔案結尾。非靜態全域性 變數的作用域是整個源程式 多個原始檔可以共同使用 好處 1 不會被其他檔案所訪問,修改 2 其他...