最常见的比较是双等号(==
)。==
运算符与=
运算符不同。
=
运算符是赋值运算符,用于设置值。==
运算符是比较运算符,它检查两个值是否相等。
以下代码评估两个变量是否彼此相等。
示例代码
#include <stdio.h>
#define SECRET 1688
int main()
{
int guess;
printf("你能猜到程序中指定的数字吗?: ");
scanf("%d",&guess);
if(guess==SECRET)
{
puts("靠,竟然给猜对了!");
return(0);
}
if(guess!=SECRET)
{
puts("猜错了,没有关系,大部分人都会猜错!");
return(1);
}
}
编译并执行上面示例代码,得到以下结果:
hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
你能猜到程序中指定的数字吗?: 1688
靠,竟然给猜对了!
=和==的差异
每个C语言程序员最常犯的错误之一,就是在if
比较中使用单个等号(=
)而不是两个等号(==
)。
示例代码
#include <stdio.h>
int main()
{
int a;
a = 5;
if(a=-3)// 少写了一个等于符号,这个语句在任何情况下都会执行
{
printf("%d 等于 %d\n",a, -3);
}
return(0);
}
编译并执行上面示例代码,得到以下结果:
hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
-3 等于 -3