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

2021-09-19 23:01:45 字數 365 閱讀 6129

全域性變數:全域性變數的定義在乙個原始檔中即可,作用域最廣,可以跨原始檔來使用,但在其它原始檔使用的時候需要使用extern來宣告再使用。

靜態全域性變數:定義後一直存在,但是只能在定義它的原始檔中存在,跨了原始檔之後不可訪問。

靜態區域性變數:靜態區域性變數在定義後,一直存在,但是只對定義自己的函式可見,出了定義自己函式之外,則不可見,具有區域性性。

區域性變數:區域性定義呼叫後,區域性的記憶體空間會被撤銷。

儲存位置比較

靜態類變數以及全域性變數都分配在靜態儲存區,而區域性變數分配在棧中。

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

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

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

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

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

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