[英]What is the meaning of '==' in C?
==
的含義是什么?它與=
什么不同?
我怎么知道使用哪一個?
==
是對平等的考驗。 =
是一項任務。
任何好的C書都應該涵蓋這一點(在我想象的書的早期)。
例如:
int i = 3; // sets i to 3.
if (i == 3) printf("i is 3\n"); // prints it.
請注意令人發指的:
if (i = 4) { }
這是有效的C並經常抓住人。 這實際上將 4 分配給變量i
並將其用作if
語句中的真值。 這導致很多人使用丑陋但更安全:
if (4 == i) {}
如果你不小心使用=
而不是==
,這是一個編譯時錯誤,而不是在你的程序運行時會在背后咬你的東西:-)
邏輯或運算符是兩個垂直條形字符,一個接一個, 而不是單個字符。 這里有一個邏輯和一個名為b4
的變量:
||
&&
b4
沒有魔法。
a == b
是測試如果a和b相等。
a = b
稱為賦值 ,表示將變量a設置為與b具有相同的值。
(在美國鍵盤布局中鍵入|
使用Shift- \\
。)
== tests equality =賦值
兩者都與||無關
我可以在芬蘭語和瑞典語鍵盤中添加它。 管道符號; |; OR是AltGr(右側alt)和<鍵。 另一方面,如果您使用的是Mac,則為Alt-7鍵。
當我第一次開始在這些鍵盤上打字時,給了我很多汗水。
既然您已經知道'=='和'='之間的區別,那么請允許我提一些注意事項。盡管'=='用作可比較變量之間相等的標准測試,'='用作內部類型 - 發布分配,以下編程錯誤很安靜。
在下面的示例和類似代碼中,'='被稱為“ 始終為真 ”的條件運算符。
#include<stdio.h>
int main()
{
int i = 10, j = 20;
if ( i = j )
printf("Equal\n");
else
printf("NOT Equal\n");
return 0;
}
所以,謹慎的話是“永遠不要在if
語句中使用' =
',除非你腦子里有一些邪惡的東西。”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.