C 變數初始化規則

2021-09-08 14:19:30 字數 323 閱讀 4488

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

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

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

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

c 變數初始化規則

include include include include include using namespace std define num 10000 class bclass 對於常量型成員變數和引用型成員變數,必須通過引數化列表的方式進行初始化 普通成員變數也可以放在函式體裡,但是本質其實已不...

C 中變數預設初始化規則

定義沒有初始化式的變數時,系統有時候會幫我們初始化變數。系統如何初始化取決於變數的型別以及變數定義的位置。1 內建型別變數是否自動初始化取決於變數定義的位置。函式體外定義的變數初始成0 函式體內定義的變數不進行自動初始化。除了用作賦值操作的左運算元,其他任何使用未初始化變數的行為都是未定義的,不要依...

C 初始化變數

1.初始化變數 int i1 7.2 正確,但是i1的值變為了7 int i 建議使用初始值列表 int i2 錯誤 初始值列表確保不會發生某些可能導致資訊丟失的型別轉換 int i3 錯誤 同上,且 是多餘的 2.使用auto關鍵字 struct record auto p new record ...