區域性靜態變數

2021-07-16 07:48:51 字數 336 閱讀 7447

全域性變數,區域性靜態變數,全域性靜態變數均儲存在靜態儲存區,區域性變數儲存在棧上,而new出來的變數則儲存在堆裡。

區域性靜態變數具有區域性作用域,它只被初始化一次,到程式結束前都一直存在,在自身函式體內是可見的,在函式體外是不可見的。而區域性變數只是在函式體內存在,函式結束時消失;全域性變數則是在程式內所有函式體內都是可見的。因此,將區域性變數改為靜態區域性變數後,作用域不變,僅改變變數的儲存方式。

全域性靜態變數具有全域性作用域,它與全域性變數的區別在於如果程式存在多個檔案,那麼全域性靜態變數只在定義自身的檔案內有效,其它檔案內不可見的。而全域性變數則對程式內所有檔案都可見。也就是說,靜態全域性變數相對於全域性變數而言只是改變了作用域,儲存方式不變。

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

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

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

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

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

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