溫馨提示×

溫馨提示×

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

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

C語言中的Static關(guān)鍵字怎么用

發(fā)布時間:2022-01-19 09:10:18 來源:億速云 閱讀:127 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹C語言中的Static關(guān)鍵字怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一、static關(guān)鍵字的基本含義

首先,static關(guān)鍵字的意思是靜態(tài)的,用于修飾局部變量,全局變量和函數(shù),修改其數(shù)據(jù)儲存類型

1.局部變量:在任意一個函數(shù)內(nèi)部定義的變量(不加static),初始值不確定,出函數(shù)自動銷毀,存放于棧區(qū)。 使用static修飾這個變量時,編譯器會把她初始化為零,存儲于靜態(tài)區(qū),函數(shù)返回時值保持不變,出函數(shù)不銷毀,下一次進入函數(shù)依然存在。根本原因——static修飾的局部變量存儲在靜態(tài)區(qū)。

2.全局變量 :普通全局變量定義在函數(shù)體外部,在靜態(tài)區(qū)分配存儲空間,編譯器自動對其初始化。普通全局變量對整個工程可見,其他文件使用關(guān)鍵字extern外部聲明后可以直接使用。 靜態(tài)全局變量僅對當前文件可見,其他文件不可訪問,其他文件可以定義與其同名的變量,兩者互不影響。 在定義不需要與其他文件共享的全局變量時,加上static關(guān)鍵字能夠有效地降低程序模塊之間的耦合,避免不同文件同名變量的沖突,且不會誤使用。

3.函數(shù):在函數(shù)的返回類型前加上static,就是靜態(tài)函數(shù)。例如:static int main() 靜態(tài)函數(shù)只能在聲明它的文件可見,其他文件不能引用該函數(shù)。不同文件可以使用相同名字靜態(tài)函數(shù) 非靜態(tài)函數(shù)可以在另一個文件直接引用。

二、static關(guān)鍵字的用法

1.當使用普通局部變量時,如圖,int a是一個局部變量,每次出函數(shù)后自動銷毀,所以打印出"6666666666";

C語言中的Static關(guān)鍵字怎么用

當使用靜態(tài)局部變量時,如圖。static修飾的局部變量除了局部范圍后不會銷毀,下一次進入函數(shù)依然存在。

C語言中的Static關(guān)鍵字怎么用

2.如圖 ,static聲名的函數(shù)不能被另一個文件引用

C語言中的Static關(guān)鍵字怎么用

三、static關(guān)鍵字的原理

因為static修飾的局部變量是存儲在靜態(tài)區(qū)的,static修飾全局變量時,實際改變的是變量的存儲位置。 局部變量放在棧區(qū)的,被static修飾后放在了靜態(tài)區(qū)。從而導致除了作用域依然存在,生命周期并沒有結(jié)束

如圖為存儲區(qū)示意圖

C語言中的Static關(guān)鍵字怎么用

以上是“C語言中的Static關(guān)鍵字怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

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

AI