值初始化和預設初始化

2021-09-25 21:06:49 字數 392 閱讀 3709

引用:

1、值初始化

顧名思義,就是用數值初始化變數。如果沒有給定乙個初始值,就會根據變數或類物件的型別提供乙個初始值。對於int型別其值初始化後的值為0。

對於預設初始化內建型別變數來說:

1)定義在函式體之外的變數是全域性變數,一般儲存在全域性區,儲存在全域性區的變數一般會執行值初始化。此時,其初始值和變數的型別有關。對於int型別其初始值為0,對於char型別其預設初始值為』 '。

2)定義在函式體內部的是區域性變數,其儲存在棧區中,如果沒有指定初值,那麼該區域性變數將不會被初始化,也就是說這個區域性變數的值是未定義的,是個隨機值。此時,如果不給這個區域性變數賦值,那麼就不能使用該區域性變數,否則就會出錯,注意這種情況是沒有被初始化,既沒有使用預設初始化也沒有使用值初始化,沒有初始化的值是不能使用的。

值初始化和預設初始化的區別

如果使用等號 初始化乙個變數,實際上執行的是拷貝初始化,編譯器把等號右側的初始值拷貝到新建立的物件中去。與之相反,如果不使用等號,則執行的是直接初始化。當初始值只有乙個時,使用直接初始化或拷貝初始化都行。如果用多個值進行初始化的情況,非要用拷貝初始化的方式處理也不是不可以,不過需要顯式地建立乙個 臨...

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

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

C 變數的預設初始化和值初始化

值初始化 1 在陣列初始化的過程中,如果提供的初始值數量少於陣列的大小,剩下的元素會進行值初始化 2 靜態static變數 定義在塊作用域外的全域性變數,如果沒有顯式的初始值,將執行值初始化 3 當我們通過書寫形如t 的表示式 例如 int 顯式地請求值初始化時 預設初始化 1 當我們在塊作用域內 ...