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

2021-06-17 19:29:34 字數 710 閱讀 5793

基礎概念就不用多講,相信大家都知道,不知道很用以查到對應的資料,現在就把比較明顯的差別根據本人所掌握的介紹一下:

區域性變數:函式中定義的變數稱為區域性變數。

1、乙個函式中定義的變數不能被另乙個函式使用。

2、每次呼叫函式時區域性變數都表示不同的儲存空間。

方法內部定義的變數,在程式執行到它的時候,系統為它在棧上分配空間。而方法在棧上分配的空間在此方法執行結束時會釋放掉。

這樣就產生乙個問題:如果想將方法中此變數的只儲存至下一次呼叫時,如何實現?

最容易想到的方法是定義乙個全域性變數,但定義乙個全域性變數有許多缺點,最明顯的缺點是破壞了此變數的訪問範圍(使得在此方     法中定義的變數,不僅僅受此方法控制)。使用static就可以解決此問題,被static修飾的變數稱為

靜態變數。 

從物件導向的角度出發,當需要乙個資料物件為整個類而非某個物件服務,同時又力求不破壞類的封裝性,既要求此成員隱藏在類的   內部,又要求對外不可見的時候,就可以使用static關鍵字。

靜態變數還有以下優點:可以節省記憶體,它使所有物件所公有的,所以對多個物件來說,靜態變數只儲存一處,供所有物件共用。     靜態變數的值對每個物件都是一樣,但它的值是可以更新的。只要某乙個物件對靜態變數的值更新一次,所有物件都能訪問更新後的   值,這樣可以提高時間效率。

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

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

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

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

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

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