溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言中如何使用static

發布時間:2021-12-26 10:18:03 來源:億速云 閱讀:235 作者:小新 欄目:開發技術

這篇文章主要介紹C語言中如何使用static,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1.static 可以修飾局部變量

首先讓我看看這段代碼

#include<stdio.h>
void test()
{
	int a = 1;
	a = a + 1;
	printf("%d", a);
}
int main()
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}
	return 0;
}

你認為輸出的結果是什么呢?

C語言中如何使用static

那為什么結果是2222222222呢

C語言中如何使用static

因為局部變量 a 進入這個范圍創建  出了這個范圍銷毀   所以結果都是2

當我們加上static 的結果又會是什么

C語言中如何使用static

那為什么加上 static 結果就不一樣了

我們研究一下static的使用原理

我們的內存分為三大類

C語言中如何使用static

我們的局部變量放在棧區  

而static把a放在了靜態區   而在靜態區的變量 出了他的范圍是不銷毀的

我們對比一下 可能更加直觀

C語言中如何使用static

 所以 static 修飾局部變量的時候,其實改變的是局部變量得存儲位置

靜態得局部變量是放在靜態區,放在靜態區的變量出了作用域是不會銷毀的,相當于生命周期延長了。

 補充   變量的作用域是不變的,只是生命周期延長了

2. static 可以修飾全局變量

我們再創建一個源文件 

C語言中如何使用static

   全局變量的作用域是整個工程

如果我們想引用另一個源文件的函數     這里我們不得不說 extern 這個關鍵字

如圖

C語言中如何使用static

  static 可以修飾全局變量  如果我們再全局變量前 加上static會是什么結果呢

C語言中如何使用static

此時就會報錯  

一個全局變量具有外部鏈接屬性的 (就是可以被其他源文件引用)但是被static 修飾后外部鏈接屬性就變成了內部鏈接屬性 只能在自己所在的源文件內部使用不能在其他文件內部使用

所以再次調試的時候就會報錯

那 static 修飾的全局變量的本質是  外部鏈接屬性發生改變   而不是他的作用域變小

static 修飾全局變量的意義是  如果你定義了一個全局變量  別人用 extern 就可以隨便使用  

如果你不想讓別人看  就可以用static . 

3.static 可以修飾函數

我們用另一個源文件創建一個函數  如圖

用 關鍵字extern 聲明后  調試結果

C語言中如何使用static

這里我們在函數前加上static 又會是什么結果呢 

C語言中如何使用static

C語言中如何使用static

  其實一個函數本身具有外部鏈接屬性  被static修飾后 外部鏈接屬性變成了內部鏈接屬性  只能在源2.c 內部使用 其他源文件無法使用    使用上感覺作用域變小

我們可以發現 static 修飾全局變量和修飾函數用法一樣   

以上是“C語言中如何使用static”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女