這篇文章主要介紹了c語言中如何使用static全局靜態(tài)變量,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站制作、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),義縣網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:義縣等地區(qū)。義縣做網(wǎng)站價(jià)格咨詢:028-86922220
1、static全局變量只初使化一次。
2、在單個.h或者.c文件中,普通全局變量和static修飾的全局靜態(tài)變量是一樣的。
3、static修飾的變量都存放在靜態(tài)數(shù)據(jù)區(qū),內(nèi)存中所有的字節(jié)默認(rèn)值都是0x00。
實(shí)例
#includeint globalNum = 100;//全局變量 int gAddr_for_static = 0; //用來保存函數(shù)里的靜態(tài)變量地址 void test_static_temp(){ static int value_static = 10;//局部靜態(tài)變量 printf("<-> value_static,addr=%x,value=%d \n\n",&value_static,value_static); gAddr_for_static = &value_static; } //通過指針修改任何全局變量!靜態(tài)變量! void SetGlobalValue(int address,int v){ int *pt; pt= address; *pt = v; } int main(void) { test_static_temp();//從輸出得到靜態(tài)變量的地址 int addr = &globalNum; printf("<1> 初始化全局變量globelNum=%d ,內(nèi)存地址=%x \n\n" , globalNum,&globalNum); SetGlobalValue(addr,1234); printf("<2> 調(diào)用函數(shù)后globelNum=%d,內(nèi)存地址=%x \n\n" , globalNum,&globalNum); addr = gAddr_for_static;//每個編譯器得到的地址不同 SetGlobalValue(addr,4567); test_static_temp(); return 0; }
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“c語言中如何使用static全局靜態(tài)變量”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!