1.作用于變量:
用static聲明局部變量時(shí)渡讼,則改變變量的存儲方式(生命期)绪商,使變量成為靜態(tài)的局部變量苛谷,即編譯時(shí)就為變量分配內(nèi)存,直到程序退出才釋放存儲單元格郁。這樣腹殿,使得該局部變量有記憶功能,可以記憶上次的數(shù)據(jù)例书,不過由于仍是局部變量锣尉,因而只能在代碼塊內(nèi)部使用(作用域不變)。
用static聲明外部變量-------外部變量指在所有代碼塊{}之外定義的變量决采,它缺省為靜態(tài)變量自沧,編譯時(shí)分配內(nèi)存,程序結(jié)束時(shí)釋放內(nèi)存單元树瞭。同時(shí) 其作用域很廣拇厢,整個(gè)文件都有效甚至別的文件也能引用它。為了限制某些外部變量的作用域晒喷,使其只在本文件中有效孝偎,而不能被其他文件引用,可以用static 關(guān)鍵字對其作出聲明厨埋。
總結(jié):用static聲明局部變量邪媳,使其變?yōu)殪o態(tài)存儲方式(靜態(tài)數(shù)據(jù)區(qū)),作用域不變荡陷;用static聲明外部變量雨效,其本身就是靜態(tài)變量,這只會改變其連接方式废赞,使其只在本文件內(nèi)部有效徽龟,而其他文件不可連接或引用該變量。
2.作用于函數(shù):
使用static用于函數(shù)定義時(shí)唉地,對函數(shù)的連接方式產(chǎn)生影響据悔,使得函數(shù)只在本文件內(nèi)部有效传透,對其他文件是不可見的。這樣的函數(shù)又叫作靜態(tài)函數(shù)极颓。使用靜態(tài)函數(shù)的好處是朱盐,不用擔(dān)心與其他文件的同名函數(shù)產(chǎn)生干擾,另外也是對函數(shù)本身的一種保護(hù)機(jī)制菠隆。
如果想要其他文件可以引用本地函數(shù)兵琳,則要在函數(shù)定義時(shí)使用關(guān)鍵字extern,表示該函數(shù)是外部函數(shù)骇径,可供其他文件調(diào)用躯肌。另外在要引用別的文件中定義的外部函數(shù)的文件中,使用extern聲明要用的外部函數(shù)即可破衔。
const作用: “只讀(readonly)”
3.定義常量
(1)const
修飾變量清女,它的含義是:const修飾的變量值是不可變的,readonly。
(2)將const改為外部連接,作用于擴(kuò)大至全局,編譯時(shí)會分配內(nèi)存,并且可以不進(jìn)行初始化,僅僅作為聲明,編譯器認(rèn)為在程序其他地方進(jìn)行了定義
extend const int ValueName = value;