C++ 變數初始化規則

Andy Niu發表於2014-01-07

1、定義變數的時候,如果沒有初始化,它的值是什麼呢?

  它的值取決於變數的型別和變數定義的位置。

2、考慮基本型別的變數,定義時沒有初始化。如果定義在方法外部,初始化為0,如果定義在方法內部,不被初始化。使用未初始化的變數,導致未定義行為。未初始化的變數事實上,也有一個值,這個值是隨機的。因此強烈建議,基本型別的變數都要初始化,也就是方法內部的變數。

3、考慮類型別的變數,定義時沒有初始化。不管定義在哪裡,都會呼叫預設構造方法,這種情況下,必須提供預設構造方法,如果沒有,編譯出錯。也就是說,對於類型別的變數,不存在沒有初始化的情況,因為沒有顯式初始化,會呼叫預設構造方法進行隱式初始化。

相關文章