在写程序的时候“==”这个运算符经常会被写错而写成赋值运算符“=”,比如这个程序
#include<stdio.h>
int main()
{
int i =2;
if(i==4){
printf("hehe\n");
}
else
{
printf("haha\n");
}
return 0;
}
这是一个十分简单的程序,执行以后结果是
可以看出这个程序是没有任何问题的,可是当这里的“==”编成“=”时会发生什么情况呢?
程序依然执行,
可是不论我的结果是什么输出的都是haha,
这就是因为关系运算符变成了赋值,不论i的值是多少,条件都为真,所以你不论输入什么都会得到相同的结果。
这时候你肯定说了,这样的问题要是发生了,我肯定能找出来的,可是如果代码是几百行甚至几千行代码,你还能找出来吗?而且这样肯定会浪费掉自己的时间,毫无疑问,你的工作效率就会大大降低。你以后大多数时候都会效力于一些软件公司,公司讲求的是效益,那这样你就很可能被淘汰了。!!!!
那这种情况有办法避免吗?当然有。比如我这样改,
这样在语法上没有任何问题,都是判断i等于4,
结果也和我们预想的完全一样,但要是你把“==”写成“=”了呢?
这时候编译系统就会报错,你怎么可能把一个变量值赋给一个常量呢,这和常量的定义完全不符。
这样就有效的避免了这种错误,因为你一旦写错程序根本无法执行的,这样就把这种错误扼杀在摇篮里。