最常見的比較是雙等号(==)。==運算符與=運算符不同。
=運算符是指派運算符,用于設定值。==運算符是比較運算符,它檢查兩個值是否相等。
以下代碼評估兩個變量是否彼此相等。
示例代碼
#include
#define SECRET 1688
int main()
{
int guess;
printf("你能猜到程式中指定的數字嗎?: ");
scanf("%d",&guess);
if(guess==SECRET)
{
puts("靠,竟然給猜對了!");
return(0);
}
if(guess!=SECRET)
{
puts("猜錯了,沒有關系,大部分人都會猜錯!");
return(1);
}
}
編譯并執行上面示例代碼,得到以下結果:
[email protected]:~/book$ gcc main.c
[email protected]:~/book$ ./a.out
你能猜到程式中指定的數字嗎?: 1688
靠,竟然給猜對了!
=和==的差異
每個C語言程式員最常犯的錯誤之一,就是在if比較中使用單個等号(=)而不是兩個等号(==)。
示例代碼
#include
int main()
{
int a;
a = 5;
if(a=-3)// 少寫了一個等于符号,這個語句在任何情況下都會執行
{
printf("%d 等于 %d\n",a, -3);
}
return(0);
}
編譯并執行上面示例代碼,得到以下結果:
[email protected]:~/book$ gcc main.c
[email protected]:~/book$ ./a.out
-3 等于 -3