lstd.net
当前位置:首页 >> C语言中iF语句,如果上面赋值A=0,iF(A=0)括号中条件是真还是假 >>

C语言中iF语句,如果上面赋值A=0,iF(A=0)括号中条件是真还是假

C语言使用0代表假,非0代表真 if(a=0); 就相当于 a=0; if(a); 就相当于 if(0); 括号中的条件是假

if(a==0){}a=0,就是a==0这个表达式为真a=1(其他不等于0的整数也行),就是a==0这个表达式位假

不一样,前面是错的,a=0表示赋值,即把0赋值给a,a==0表示判断,如果为真,则执行if语句,否则不执行

如果a=0那么b就=1,这只是其中一句执行语句而已.再看看别人怎么说的.

在功能上没有区别,只是后一种的编程习惯更好,因为前一种很容易不小心写成if(a=0)了,而这样的错误在编译的时候不会被发现,只是你的运行结果会不正确;而后一种如果写成了if(0=a),编译会报错,这样很容易就会发现你出错的地方.

c语言使用0代表假,非0代表真if(a=0);就相当于a=0;if(a);就相当于if(0);括号中的条件是假

if(a)代表a不等于0时满足if条件,等价于if(a!=0).if(!a)代表a等于0时满足if条件,等价于if(a==0).补充拓展:c语言进行条件判断的时候,当逻辑值判断为真时才会执行if语句.而当一个变量为0或空时,它的逻辑值为假,其他情况下为真.所以,当a不等于0或空时,a和a!=0的逻辑值是真,!a和a==0的逻辑值是假,反之同理.

如果把if(a==0)写成if(a=0),有的编译器可能会出现警告,但是所有编译器都可以正常生成exe文件,最后执行程序的时候,if后面的语句永远也无法执行,并且执行if语句之后,a的值无论以前为什么,都会被赋予0.

效果是一样的,没有区别,但是我建议你把常量写在前面,也就是尽量使用if(0==a)的格式,这样出错时少打一个=的时候,程序就会报错.

赋值语句不一定都是真的&& 只要前面为假~~~后面的不执行 (m=0)&&(n=1) 假 m=0的值为0 (m=1)&&(n=1) 真 字符串的处理~~经常用这个原因来~~~作为结束条件 while(*p++=*q++) 结束条件就是'\0'赋值给*p 表达式的结果是0就是假

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.lstd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com