ps:本人親測,阿里雲2核4g5m的伺服器價效比很高,新使用者一塊多一天,老使用者三塊多一天,最高可以買三年,感興趣的可以戳一下:阿里雲折扣伺服器
全域性變數作用域為定義處至原始檔結尾,儲存時期為定義後為其分配記憶體,程式退出後釋放記憶體;
區域性變數作用域為區域性,儲存時期為定義後分配記憶體,退出作用域後釋放記憶體;
全域性變數預設為靜態變數,區域性變數預設為自動變數,也可以宣告為靜態變數,靜態變數和自動變數的區別是儲存時期的區別,靜態變數的儲存時期是記憶體空間在程式執行期間都存在,程式退出才被釋放;自動變數記憶體空間在作用域內才存在,退出作用域後就被釋放。
靜態區域性變數的特點:
1.不會隨著函式的呼叫和退出而發生變化,不過,儘管該變數還繼續存在,但不能使用它。倘若再次呼叫定義它的函式時,它又可繼續使用,而且儲存了前次被呼叫後留下的值
2.靜態區域性變數只會初始化一次
3.靜態屬性只能被初始化為乙個字元值或乙個常量,不能使用表示式。即使區域性靜態變數定義時沒有賦初值,系統會自動賦初值0(對數值型變數)或空字元(對字元變數);靜態變數的初始值為0。
4.當多次呼叫乙個函式且要求在呼叫之間保留某些變數的值時,可考慮採用靜態區域性變數。雖然用全域性變數也可以達到上述目的,但全域性變數有時會造成意外的***,因此仍以採用區域性靜態變數為宜。
**如下:
function test()
test(); //2
test(); //3
test(); //4
echo $var; //報錯:notice: undefined variable: var
關於靜態全域性變數:
**如下:
//全域性變數本身就是靜態儲存方式,所有的全域性變數都是靜態變數
function static_global()
static_global(); //1
static_global(); //2
static_global(); //3
echo $glo . '
'; //3
所以靜態全域性變數使用並不多。
靜態變數和全域性變數
靜態資料成員和靜態函式 與類本身直接相關,而不是與類的各個物件保持關聯。通過在成員的宣告之前加上關鍵字static使得其與類關聯在一起。靜態資料成員的型別可以是算術型別 常量 引用 指標 類型別等。類似的,靜態成員函式也不與任何物件繫結在一起,它們不包含 this 指標。靜態成員函式不能宣告為 co...
靜態變數和全域性變數
一 全域性變數 1 在mymethod.h中 extern qstring real db path 2 在mymethod.cpp中 必須做這一步,這一步是為變數分配空間,如果不分配空間,使用的時候編譯不過 qstring real db path 3 在需要使用的地方,include mymet...
全域性變數和靜態變數區別
儲存的地方是一樣的,不同之處在於它們的作用域不同 全域性變數基本上在程式的任何地方都能被看到 而靜態區域性變數只能在其指定的範圍內被使用 比如 int i 全域性變數 class c void main 全域性變數具有外部連線性,即同一工程中其它檔案中的也可引用。而靜態變數不具有外部連線性,即同一工...