必须知道的C语言知识细节:=和==区别

2020-07-24  本文已影响0人  哪有岁月静好

今天有同学问我,C语言中的等号和数学中的等号区别。这个问题对初学者的确有一些迷惑,这里详细说明下。

C语言中等号=表示赋值运算符,例如E1=E2,表示将E2的值存放到变量E1中,E1必须是可修改的左值,也就是变量。

双等号==是逻辑判断运算符,表示相等,例如E1==E2,表示判断E1和E2的值是否相等,如果相等返回1,不相等返回0值。

因此,双等号==才是数学中的等号,另外C语言中的不相等运算符号用 != 表示。

注意两者不能混用,在if、while、for等语句中表示逻辑判断是,如果混用将导致程序运行结果不正确。例如:

int a=1;
int b=2;
if(a==b)  // a==b表达式的结果是0,因为a和b不相等
{
    // 该部分将不会执行
}
if(a=b)    // a=b表达式的结果是2,因此判断为真
{
    // 该部分将被执行   
}

完整示例:

#include <stdio.h>
int main(void) {
  int a=1;
  int b=2;
  if(a==b) {
    // 该部分将不会执行
    printf("a==b的值是%d.\n", a==b);
  }

  if(a=b) {
    printf("a=b的值是%d.\n", a=b);
  }
  return 0;
}

运行结果:
a=b的值是2.

其实做为一个学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C/C++基础交流583650410,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。



上一篇下一篇

猜你喜欢

热点阅读