通過這篇文章,你將對C語言中static的用法與注意事項有一個深入的了解。
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),東臺企業(yè)網(wǎng)站建設(shè),東臺品牌網(wǎng)站建設(shè),網(wǎng)站定制,東臺網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,東臺網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。一.初識static
在C語言中,static可以修飾局部變量,也可以修飾全局變量和函數(shù)。經(jīng)過static修飾后,其生命周期改變。舉個例子,通常情況下,局部變量在其局部范圍內(nèi)使用結(jié)束后,即被銷毀。而static修飾局部變量后,其不會被銷毀。也就是說,static修飾局部變量,改變了局部變量的生命周期。
我們來看下面的代碼
#define _CRT_SECURE_NO_WARNINGS 1
#include//static修飾局部變量,改變了局部變量的生命周期(本質(zhì)上是改變了變量的存儲類型)
void test()
{
static int a = 1;
a++;
printf("%d\t", a);
} //注意由于static的存在, 這里的a在函數(shù)被調(diào)用結(jié)束后沒有被銷毀
int main()
{
int i = 0;
while (i< 10)
{
test();//調(diào)用test函數(shù)
i++;
}
return 0;
}
/*此時結(jié)果是2 3 4 5 6 7 8 9 10 11
若test函數(shù)中的a沒有用static來修飾,那么結(jié)果會是2 2 2 2 2 2 2 2 2 2 2 因為每次調(diào)用完test函數(shù)后,局部變量a會被銷毀
總結(jié):經(jīng)過static修飾之后,其生命周期就改變了。(注:本質(zhì)上是改變了變量的存儲類型)
二.static對于跨文件調(diào)用的影響
在不同的源文件中,我們可以通過extern修飾變量,以便完成對于該變量的調(diào)用。但是,當文件中的變量被static修飾后,那么該變量則只能用于該文件。
我們來看下面的例子。
當我們在一個文件里定義如下全局變量,并且用static來修飾它。
static int ADD = 111;
那么,我們是無法在另外一個文件里使用它的。
#define _CRT_SECURE_NO_WARNINGS 1
#includeextern int ADD;
int main()
{
printf("%d", ADD);
return 0;
}//此時編譯會報錯
三.被static修飾的變量,其值是可以改變的
#define _CRT_SECURE_NO_WARNINGS 1
#includeint main()
{
static int AB = 100;
AB = 1000;// static 可以修飾全局變量,可以修飾局部變量,可以修飾函數(shù)。 static修飾的變量可以改變。
printf("%d\n", AB);
return 0;
}//此時會輸出 1000 AB的值不再是100
以上,就是C語言中,static的用法與介紹。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧