天天看點

C語言學習——變量的存儲類

1.作用域

a.代碼塊作用域:變量的作用範圍在一段{  }代碼内,函數的形參和内部定義的變量都具有代碼塊作用域;

b.檔案作用域:定義在所有函數之外的變量具有檔案作用域,作用範圍在整個檔案;

c.函數原型作用域:在聲明函數時給出的形參具有函數原型作用域,它的作用範圍從聲明開始到聲明結束;

d.函數作用域:隻針對goto語句。

2.連結:内部連結,外部連結,空連結

具有代碼塊作用域和函數原型作用域的變量擁有空連結,表明他們由其所定義的代碼塊和函數原型所私有;

具有檔案作用域的變量具有内部連結或外部連結,内部連結表明他們隻在一個檔案内使用,外部連結表明他們可以被多個檔案使用;

3.存儲時期:自動存儲和靜态存儲

靜态存儲在程式執行期間将會一直存在,自動存儲會在代碼塊執行結束後釋放;

4.存儲類

a.自動: 自動存儲 代碼塊作用域 空連結 代碼塊内部;

b.寄存器:自動存儲 代碼塊作用域 空連結 代碼塊内部 關鍵字 register;

c.具有外部連結的靜态:靜态存儲 檔案作用域 外部連結 所有函數之外;

d.具有内部連結的靜态:靜态存儲 檔案作用域 内部連結 所有函數之外 關鍵字 static;

e.空連結的靜态:靜态存儲 代碼塊作用域 空連結 代碼塊内部 關鍵字static;

繼續閱讀