簡體   English   中英

C中'=='的含義是什么?

[英]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測試如果ab相等。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM