如果乙個變數變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修飾後:
在除錯過程中出現了錯誤:1.無法解析的外部命令。2.無法解析的外部符號a。#include //原始檔1.c中的**
int a = 2018;//a為全域性變數
#include //原始檔2.c中的**
extern int a;
int main()
此時執行結果為:#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 其他...