易百教程

双等号 == 与单等号 =

最常见的比较是双等号(==)。==运算符与=运算符不同。

=运算符是赋值运算符,用于设置值。==运算符是比较运算符,它检查两个值是否相等。
以下代码评估两个变量是否彼此相等。

示例代码

#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