因為:
如果沒有static :
int x = 0;// 聲明,并初始化為0
int x; // 聲明
// 在此期間訪問會遇到隨機值(這么做應該被認為是錯誤的!)
x = 0; // 初始化
如果加了static :
【static int x=0;和static int x;x=0;為什么不一樣呢?】static int x = 0; // 聲明并初始化(此時為初始化賦值,如果這條語句出現在函數中,即便被多次調用,也只會執行一次 。)
static int x; // 聲明并使用默認初始化值
// 在此期間訪問會得到靜態變量的系統默認值(int型為0)
x = 0; // 賦值為0

注意事項
1、static全局變量和普通的全局變量
static全局變量在定義該變量的當前源文件內有效,在同一源程序的其它源文件中不能使用它 。而普通的全局變量在各個源文件中都是有效的(當一個源程序由多個源文件組成時) 。
2、static局部變量和普通的局部變量
static局部變量存放在靜態存儲區,其只在當前函數中起作用,但是其生存周期是直到當前程序結束為止,而局部變量存在于棧中 。
3、static函數和普通函數
static函數只在當前源文件中起作用,在其他文件中不起作用 。普通函數則可在其他源文件中調用 。
猜你喜歡
- 周杰倫和五月天的關系
- 新聞傳播學 和新聞與傳播 碩士專業有什么區別
- 阿彌陀佛和釋迦牟尼佛有何不同
- 威士忌和紅茶怎么配
- 拼多多雙旦和年貨節活動規則
- 魔獸世界國服大腳插件的反和諧失效了,我開啟原汁原味魔獸,也安裝了花骨朵,但還是沒效果,求助!
- 佳能7D和70D區別在哪?家用哪款好?
- 個股的支撐位和壓力位怎么看
- 小說與散文,詩歌和戲劇的區別在哪里
- 老年和暮年的區別 老年和暮年有區別嗎
