1. 程式人生 > >全域性變數、靜態變數、區域性變數、const變數

全域性變數、靜態變數、區域性變數、const變數

生命週期:

  • 一個變數存在的週期

作用域:

  • 一個變數可以被引用的範圍
作用域 生命週期 定義方法 記憶體分佈 注意
全域性變數 全域性作用域(只需在一個原始檔定義,就可作用於所有原始檔) 程式執行期一直存在 引用方法:其他檔案中要使用必須用 extern 關鍵字宣告,或通過包含標頭檔案的方式 全域性(靜態)儲存區 如果兩個檔案中都定義了相同名字的全域性變數,則連接出錯:變數重定義
全域性靜態變數 檔案作用域(只在被定義的檔案中可見) 程式執行期一直存在 static 關鍵字、const 關鍵字 全域性(靜態)儲存區 只要檔案不相互包含,兩個不同檔案變數可同名
靜態區域性變數 區域性作用域 程式執行期一直存在 區域性作用域中用 static 定義 全域性(靜態)儲存區 只被初始化一次,多執行緒中可加鎖保護
區域性變數 區域性作用域 程式執行出局部作用域即被銷燬 用 auto 指示符定義,也可省略 棧區