十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
static關(guān)鍵字在c/c++中的作用無(wú)非修飾三種類型。

被static修飾過(guò)得局部變量,叫做靜態(tài)局部變量,只會(huì)被賦一次初值,系統(tǒng)會(huì)把該變量在靜態(tài)存儲(chǔ)區(qū)開辟一塊空間。不像一般的變量,開辟在堆棧區(qū),系統(tǒng)用完就把空間釋放了,但是static修飾過(guò)的局部變量,程序調(diào)用完不會(huì)立刻釋放。會(huì)等到程序執(zhí)行完再釋放。但其作用域并不會(huì)改變,但是其生命周期會(huì)延長(zhǎng)至程序結(jié)束。
首先看靜態(tài)局部變量只會(huì)被賦值一次#includevoid test1()
{static int a=10;
int b=10;
printf("a=%d\n",a);
a++;
printf("b=%d\n",b);
b++;
}
int main()
{for(int i=0;i<4;i++)
{test1();
}
} 程序運(yùn)行結(jié)果如下圖:

由圖一結(jié)果發(fā)現(xiàn),靜態(tài)局部變量只會(huì)被初始化一次。
由圖二發(fā)現(xiàn)報(bào)錯(cuò),說(shuō)明靜態(tài)局部變量作用域未被改變。
但是怎么查看其生命周期有沒有改變呢;看下邊代碼。
#includeint *p=NULL;
int *q=NULL;
void test1()
{static int a=10;
int b=9;
p=&a;
q=&b;
}
int main()
{test1();
printf("a=%d\n",*p);
printf("b=%d\n",*q);
} 執(zhí)行結(jié)果:

再看執(zhí)行結(jié)果發(fā)現(xiàn)a的值沒有改變,而b的值已經(jīng)發(fā)生了改變。這是因?yàn)閍變量被static修飾了,其地址空間并沒有被釋放,其它變量不能占用這一塊空間,而反觀b,其地址空間已經(jīng)被釋放了,所以其它變量可以占用這一塊地址空間,因此b的值發(fā)生了改變。
大家可以參考一下這篇文章:
https://blog.csdn.net/z_x_m_m_q/article/details/82502162
static修飾的全局變量,其作用域被改變了,如果全局變量不被static修飾,那么這個(gè)全局變量可以在其它文件里面使用,但是加上static關(guān)鍵字,那么這個(gè)變量就不可以在其它文件中使用了。但是它的生命周期不會(huì)發(fā)生改變。
//文件1
#ifndef _EXP_H_
#define _EXP_H_
#includevoid print();
#endif
//文件2
#include"exp.h"
int overall=100; //對(duì)比量
static int ovErall=200; //被測(cè)量
void print()
{printf("66\n");
}
//文件3
#include#include"exp.h"
extern int overall;
extern int ovErall;
int main()
{printf("overall=%d\n",overall);
printf("ovErall=%d\n",ovErall);//注釋掉此行程序不報(bào)錯(cuò)
} 

//文件1
#ifndef _EXP_H_
#define _EXP_H_
#includevoid print1();
static void print2();
#endif
//文件2
#include"exp.h"
void print1()
{printf("66\n");
}
static void print2()
{printf("99");
}
文件3
#include#include"exp.h"
int main()
{print1();
//print2(); //注釋掉此行函數(shù)正常運(yùn)行,否則報(bào)錯(cuò)。
} 運(yùn)行結(jié)果:

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧