回复 楼主 hb0zyj
还有很多同学不明白,赋值表达式的值不表达赋值成功与否,而是赋值后,等号左边变量的值,尝试一下下面这个程序 void main(){int i;if (i=0) printf("i=0");if (i=1) printf("i=1");}这个程序会输出 i=1,也就是说执行了第二个if语句的执行。
if判断语句,比如if (i=0)这种编译是不会报错的,一旦出问题了不好定位,所以很多公司的编程规范里有一条,如果是if判断,后面的表达里常量要被放在==的左边,如if(1==i),因为如果写错了写成if(1=i)编译会报错