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

2021-08-30 17:31:01 字數 610 閱讀 1217

生命週期:

作用域:

作用域生命週期

定義方法

記憶體分布

注意全域性變數

全域性作用域(只需在乙個原始檔定義,就可作用於所有原始檔)

程式執行期一直存在

引用方法:其他檔案中要使用必須用 extern 關鍵字宣告,或通過包含標頭檔案的方式

全域性(靜態)儲存區

如果兩個檔案中都定義了相同名字的全域性變數,則連線出錯:變數重定義

全域性靜態變數

檔案作用域(只在被定義的檔案中可見)

程式執行期一直存在

static 關鍵字、const 關鍵字

全域性(靜態)儲存區

只要檔案不相互包含,兩個不同檔案變數可同名

靜態區域性變數

區域性作用域

程式執行期一直存在

區域性作用域中用 static 定義

全域性(靜態)儲存區

只被初始化一次,多執行緒中可加鎖保護

區域性變數

區域性作用域

程式執行出區域性作用域即被銷毀

用 auto 指示符定義,也可省略

棧區

區域性變數,區域性靜態變數,全域性變數,全域性靜態變數分別

c 記憶體到底分幾個區?一 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構中的堆是兩回事,分配方式倒是類似於鍊錶,呵呵。3 全域性...

全域性變數,全域性靜態變數,區域性靜態變數,區域性變數

變數可以分為全域性變數 靜態全域性變數 靜態區域性變數和區域性變數。按照儲存區分 全域性變數 靜態全域性變數和靜態區域性變數都存放在記憶體的全域性資料區,區域性變數存放在記憶體的棧區。按作用域分 全域性變數在整個工程檔案內都有效 靜態全域性變數只在定義它的檔案內有效 靜態區域性變數只在定義它的函式內...

區域性變數,區域性靜態變數,全域性變數,全域性靜態變數分別

c 記憶體到底分幾個區?一 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構中的堆是兩回事,分配方式倒是類似於鍊錶,呵呵。3 全域性...