在之前,我們經常會這樣寫**:
int a;
a=5;
我們可以把這個行為叫做 宣告變數,然後賦值。
我們也可以這麼寫**:
int a=5;
這個行為在宣告變數的同時,對其賦值。和前一種作用相同,我們把這種方法,稱其為將變數初始化——即將賦值和宣告合併在一起。
後者可以有效避免你在宣告變數時,忘記給變數賦值。
另外,對變數初始化是十分有必要的一件事情,假如沒有進行初始化,(以下我沒看懂)該變數將是他被建立之前,相應記憶體單元所儲存的值。(這個值是神馬?)
另外,還有一種將變數初始化的方法:
int a(5);
他等價於int a=5; 但這個方法是c++專享的,c語言並沒有。
ps:還有一種,通常用於陣列和結構(這個是神馬)的初始化方式,但在c++98中,也可以用於單值變數。
即int a; //注意,這裡是大括號,即****+[ 、]的那兩個。
也可以這麼寫int a=;
假如這麼寫:int a={}; 或者int a{}; 那麼意味著a=0
按照說明,這種辦法有助於更好的防範型別轉換錯誤。(雖然我不懂)。c++可以使大括號初始化器用於任何型別。
變數初始化
int a 是變數定義,也就是說編譯器將為a分配儲存,這在編譯時被處理。int a 0 是定義 初始化,定義的分配儲存的action在編譯時完成,初始化的action則在執行時完成 將執行類似dword ptr ebp 4 0的指令,而單獨的int a 不會有對應的執行指令 定義是分配空間,而初始化...
初始化列表成員變數的初始化
對於以下程式 include using namespace std class base base b 0 a b int get a int get b int main 本想得到的結果是a,b都為90。但是實際結果卻是 4273046 90process returned 0 0x0 exec...
C 初始化變數
1.初始化變數 int i1 7.2 正確,但是i1的值變為了7 int i 建議使用初始值列表 int i2 錯誤 初始值列表確保不會發生某些可能導致資訊丟失的型別轉換 int i3 錯誤 同上,且 是多餘的 2.使用auto關鍵字 struct record auto p new record ...