根據c語言的說法,區域性變數:定義在方法內部的變數叫區域性變數;全域性變數:定義在方法外部的變數叫全域性變數。區域性變數和全域性變數的主要區別在於二者的生存週期不同。
全域性變數的生存週期:靜態分配記憶體,程式執行期間常駐記憶體,直到程式執行結束。
區域性變數的生存週期:動態分配記憶體,位於執行緒堆疊中。
另外全域性變數和區域性變數的作用域不同,舉例來說,類中的變數作用域在當前類中,類方法中的變數作用域在當前方法中。
全域性變數的使用場景:多個地方需要使用,大家共享。
區域性變數的使用場景:只在當前這個地方使用。
在專案開發中,盡量少使用全域性變數(準確地說,應該是盡量縮小變數的作用域)。為什麼盡量少使用全域性變數?
首先,不符合高內聚、低耦合的原則,維護困難。舉例來說:全域性變數相當於公家的東西,好處是大家都可以很方便的使用,壞處是大家都可以隨便使用,會引起衝突,你用的時候也不知道別人做了什麼手腳(不符合函式式程式設計原則),因此很難管理。
其次,使用全域性變數不符合延遲載入的原則,延遲載入說的是,等到真正用到的時候,再載入相應的東西到記憶體中。而使用全域性變數相當於一開始,就把所有需要的東西載入進來。舉例來說:我們出去旅遊,沒有必要帶上所有的東西吧,比如公尺飯,我們可以在旅遊地買公尺飯吃。
但是,盡量少用,並不意味著不用,有些時候必須要用。還是上面出去旅遊的例子,旅遊過程中,你的錢包要始終帶著,因為到處需要錢,這就是全域性。
全域性變數與區域性變數
區域性變數 在區域性 塊內定義 作用域在區域性 塊內,生命週期在區域性 塊內,結束時銷毀。include void test int main return 0 輸出 1111111111 全域性變數 在所有 塊外定義 作用域是整個工程,生命週期程式開始至結束。工程test 10 10 原始檔sum...
區域性變數與全域性變數
資料的儲存型別 一 變數的作用域 變數的作用域是指變數有效性的範圍,與變數定義的位置密切相關,作用域是從空間這個角度來描述變數的,按照作用域的不同,變數可分為區域性變數和全域性變數。1 區域性變數 在函式 或 塊 內部定義的變數,也稱為內部變數,區域性變數只能在定義它的函式 或 塊 內使用,其他函式...
區域性變數與全域性變數
在乙個函式內部定義的變數,它只在本函式範圍內 有效,也就是說只有在本函式內才能使用它們,在 此函式以外是不能使用這些變數的。在函式之外定義的變數是外部變數,稱為全域性變 量 global variable,也稱全程變數 全域性變數的有效範圍為從定義變數的位置 開始到本原始檔結束。includeusi...