文章目錄提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
成都創新互聯是專業的銀海網站建設公司,銀海接單;提供網站設計、成都做網站,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行銀海網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!
static關鍵字不僅可以用來修飾變量,還可以用來修飾函數。在使用static關鍵字修飾變量時,我們稱此變量為靜態變量。靜態變量的存儲方式與全局變量一樣,都是靜態存儲方式。靜態變量屬于靜態存儲方式,屬于靜態存儲方式的變量卻不一定就是靜態變量。
提示:以下是本篇文章正文內容,下面案例可供參考
先看段代碼:
#includevoid test()
{int m = 0;
m = m + 1;
printf("%d", m);
}
int main()
{int n = 0;
while (n< 10)
{test();
n++;
}
}
輸出結果:
這個結果沒問題,下面咱們加個static對比一下:
#includevoid test()
{static int m = 0;
m = m + 1;
printf("%d", m);
}
int main()
{int n = 0;
while (n< 10)
{test();
n++;
}
return 0;
}
輸出結果:
static 修飾局部變量的時候,其實改變的是局部變量的存儲位置,靜態的局部變量是放在靜態區,放在靜態區的變量出了作用域是不會銷毀的,相當于生命周期延長了。
注:變量的作用域是不變的,只是生命周期延長了。
創建一個源文件:a.c
int g_val=2022;//全局變量
引用全局變量:全局變量的作用域是整個工程
#includeextern g_val;//extern 用來聲明外部命令
int main()
{printf("%d\n", g_val);
return 0;
}
輸出結果:
static可以修飾全局變量,加上static看一下有什么不同:
static int g_val = 2022;//全局變量
主文件不變:
#includeextern g_val;//extern 用來聲明外部命令
int main()
{printf("%d\n", g_val);
return 0;
}
輸出結果:
此時會報錯:一個全局變量具有外部鏈接屬性的 (就是可以被其他源文件引用)但是被static 修飾后外部鏈接屬性就變成了內部鏈接屬性 只能在自己所在的源文件內部使用不能在其他文件內部使用.
所以再次調試的時候就會報錯
二、static修飾函數源文件a.c中創建個函數名為add:
代碼如下:
static int add(int x, int y)
{int z = x + y;
return z;
}
主文件test.c如下:
extern add(int x, int y);
int main()
{int a = 2;
int b = 3;
int c = add(a, b);
printf("%d\n", c);
return 0;
}
輸出結果:
其實一個函數本身具有外部鏈接屬性 被static修飾后外部鏈接屬性變成了內部鏈接屬性 ,只能在源文件a.c 內部使用了,其他源文件無法使用,使用上感覺作用域變小,我們可以發現 static 修飾全局變量和修飾函數用法一樣 。
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
當前文章:C語言中static用法詳解-創新互聯
網頁地址:http://m.newbst.com/article10/hppdo.html
成都網站建設公司_創新互聯,為您提供網站建設、虛擬主機、App設計、手機網站建設、品牌網站設計、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯