c++中=和==的區別有哪些?

2020-11-24 21:02:37

區別:1、「=」是賦值的意思,是賦值運運算元;而「==」是相等運運算元,用於判斷兩邊是否相等。2、「=」運運算元存在強制型別轉換,而「==」不存在強制轉換。

c++中=和==的區別

1、含義不同:

「=」是賦值的意思。

它的作用是將一個表示式的值賦給一個左值。一個表示式或者是一個左值,或者是一個右值。所謂左值是指一個能用於賦值運算左邊的表示式。左值必須能夠被修改,不能是常數。我們用變數作左值,還可以看到,指標和參照也可以作左值。

「==」是相等操作符,判斷兩邊是否相等。利用相等運運算元,如果希望相等運運算元返回true,則運運算元兩側的值或語句必須使相等的;如果不相等,則==運運算元返回false。

2、是否存在強制轉換:

「=」該運運算元將執行強制型別轉換,所以也會有一些特殊的規則:

(1)如果一個運算元是數位,另一個是字串,==運運算元會嘗試在比較之前將字串轉換成數位;

(2)如果一個運算元是布林值,那麼在比較之前它將會被運運算元強制轉換成為數值型別,在這種情況下,true被轉換為1,而false被轉換為0。

(3)如果一個運算元是null,而另一個是underfined,比較結果為true;

(4)如果一個或兩個運算元都是NaN,比較結果為false。

「==」不存在強制轉換,而是賦值運算將原變數的值拷貝到新變數中(傳值賦值),所以改變其中一個並不影響另一個。

3、返回值的結果不同:

「=」的結果實際上意味著把右邊表示式的值賦給左邊的運算數。賦值運算表示式的值也就是所賦的值。也就是說,「$a = 3」的值是 3。

「==」則不同,它會返回false或true值。所以例如「4」==4這樣的語句將返回true,因為JavaScript會將字元「4」轉換成數位4。如果希望該語句返回false,則需要使用恆等運運算元(===)。

1.jpg

更多程式設計相關知識,請存取:!!

以上就是c++中=和==的區別有哪些?的詳細內容,更多請關注TW511.COM其它相關文章!