我的C 學習筆記 初始化和賦值的區別

2021-07-24 13:48:10 字數 1063 閱讀 1630

初始化和賦值初始化

初始化的定義

初始化是指在物件(變數)定義是獲得了有特定的值,這就是物件(變數)的初始化。賦值:賦值的含義是把當前物件(變數)的值抹去,再用乙個新的值來代替它。

初始化的方式在c++ 新的11標準中,用花括號得到了全面的應用。這種用花括號初始化變數的方式被稱為「列表初始化」。

列表初始化:列表初始化有乙個特點。。。當你用列表初始化而且初始化的時候存在丟失資訊風險時會報錯。

如: 

long double ld = 2.3;

int a,b = ; //錯誤,因沒有進行轉換。。存在丟失的風險。

int c, d = ld;

//正確,進行了轉化。

預設初始化:當定義變數沒有指定初值時。這就是預設初始化。

這個預設值,是由變數型別決定的,嗯。。
而且定義變數的位置也會對其有影響。如果是內建型別的變數沒有被顯式的初始化,那他的值是定義的位置決定的。定義為函式內部的變數將會被初始化為0。

但是還有乙個例外!乙個定義在函式內部的 「內建型別變數」將不會被預設初始化,,這個值將是未定義的而且,當你拷貝或以其他形式訪問此類值將引發錯誤。

ps:定義時不進行初始化是一種非常.....不好的習慣。

pss:各位大佬,求放過,我是乙個新人,寫部落格是為了更好的學習,如果有錯希望能夠幫助我改正一下,謝謝了。

初始化和賦值的區別

區別說明 賦值操作是在兩個已經存在的物件間進行的,而初始化是要建立乙個新的物件,並且其初值 於另乙個已存在的物件。編譯器會區別這兩種情況,賦值 的時候呼叫過載的賦值運算子,初始化的時候呼叫拷貝建構函式。如果類中沒有拷貝建構函式,則編譯器會提供乙個預設的。這個預設的拷貝建構函式只是簡單地復 製類中的每...

類的初始化和賦值

我的問題是關於初始化c 類成員的。我見過許多這樣的 包括在你的欄目中也見到過 csomeclass csomeclass x 0 y 1 而在別的什麼地方則寫成下面的樣子 csomeclass csomeclass x 0 y 1 我的一些程式設計師朋友說第二種方法比較好,但他們都不知道為什麼是這樣...

C語言指標的初始化和賦值

1 指標的初始化 指標初始化時,的右運算元必須為記憶體中資料的位址,不可以是變數,也不可以直接用整型位址值 但是int p 0 除外,該語句表示指標為空 此時,p只是表示定義的是個指標變數,並沒有間接取值的意思。例如 int a 25 int ptr a int b 10 int point b i...