C 預設初始化

2021-09-19 06:37:59 字數 1009 閱讀 8830

如果定義變數時沒有指定初始值,則變數被預設初始化,此時變數被賦予了預設值,預設值到底是什麼由變數型別和位置決定。

函式體外初始化為0,函式體內不被初始化,使用new初始化的值是隨機的。

int g_value;

intmain

(void

)

定義乙個類變數但沒有指定初始值時,會使用預設建構函式來初始化,所以沒有預設建構函式的類不能預設初始化,函式體外定義的類變數會在模組入口點被初始化,例如windows下的maincrtstartup。

對於定義在函式體外的類變數,會先進行零初始化然後執行預設初始化。

//合成的預設建構函式

class worker

;//有使用者定義的預設建構函式

class person;}

;worker g_worker;

person g_person;

intmain()

如果定義陣列時提供了初始化列表,未定義的元素若是內建型別或有合成的預設建構函式的類型別,則會先執行零初始化,如果元素是類型別,再執行預設建構函式;如果未提供初始化列表,則每個元素使用預設初始化。

class worker

;int

main()

int array2[5]

=;for(

int i =

0; i <

5; i++

)int array3[5]

=;for(

int i =

0; i <

5; i++

) worker *worker = new worker;

worker array4[5]

=;for(

int i =

0; i <

5; i++

)system

("pause");

return0;

}

C 預設初始化

預設初始化,顧名思義,即為在定義變數時如果沒有為其指定初始化值,則該變數會被c 編譯器賦予預設的值。而變數被賦予的預設值到底是什麼,則取決於變數的資料型別和變數的定義位置。規則1 內建型別的變數如果初始化,則它的預設初始化值取決於定義它的位置 定義在任何函式之外的未初始化的內建型別變數 也就是全域性...

預設初始化

雖然保險的做法是對每個變數都顯示初始化,但是了解一下預設初始化的規則也是很有必要的。1.定義於任何函式體之外的變數被初始化為0。2.定義在函式體內部的區域性變數不會被預設初始化。所以,它的值是未定義的 這裡的 未定義 我的理解 變數所分配記憶體中的二進位制資料,分配時是什麼就是什麼,機器會按照變數的...

初始化 1 預設初始化 列表初始化

初始化的基本概念 事實 初始化和賦值是兩個完全不同的操作。初始化,是建立變數時賦予其乙個初始值。賦值,是把物件的當前值擦除,用乙個新值代替。列表初始化 p39 作為c 11新標準的一部分,用花括號 來初始化變數得到了全面應用。出於某些原因,這種初始化的方式叫做列表初始化。現在,無論是初始化物件還是某...