C語言之變數的儲存方式和生存週期

2021-08-08 15:42:22 字數 583 閱讀 7539

首先明確一下變數的劃分方式。

根據變數的作用域,可以劃分為:區域性變數,全域性變數

根據生存週期,可以劃分為:靜態儲存方式,動態儲存方式

#include 

int main()

int a,b,c;

/*定義外部變數abc,因為是在函式外部定義的所以是外部變數,但是其作用範圍是從此處至之後的函式,main函式在其之前所以正常是不能引用的*/

int function()

#include 

int a;//宣告外部變數a

int main()

在file2.c檔案中:

extern a;//擴充套件作用域

void print()

可以發現,extern既可以把同乙個檔案中的外部變數作用域擴充套件,又可以擴充套件其他檔案中的變數,系統怎麼區別呢?在編譯時如果遇到extern,現在本檔案中尋找外部變數的定義,如果沒有找到,就在連線時從其他檔案中找,如果再找不到,就報錯。(也是遵循由小到大的原則)

C語言之變數型別和儲存方式

變數可以分為全域性變數 靜態全域性變數 區域性變數和靜態區域性變數 變數的宣告有兩種情況 1 一種是需要建立儲存空間的 定義性宣告 例如int a 在生命的時候就已經建立了儲存空間。2 另一種是不需要建立儲存空間的 引用性宣告 例如extern int a 其中變數a是在別的檔案中定義的。記憶體區域...

C語言之變數屬性

1.c語言的變數屬性 c語言中的變數可以有自己的屬性 在定義變數的時候可以加上 屬性 關鍵字 屬性 關鍵字指明變數的特有意義 語法 property type var name 示例 2.auto關鍵字 auto即c語言中區域性變數的預設屬性 auto表明將被修飾的變數儲存於棧上 編譯器預設所有的區...

C語言之變數的本質

一 變數的本質 變數的本質是一段連續記憶體空間的別名,或者說變數是一段連續記憶體空間的門牌號,畫個圖 不管是標準資料型別,還是指標 指標也是一種資料型別 都是一樣的,都是記憶體空間的門牌號,千萬不好把變數畫到記憶體中去。二 通過變數往記憶體中進行讀寫資料 三 修改記憶體的方法 1 直接 int a ...