问个问题,C语言的,关于if语句中条件判断是一个赋值语句问题。

问个问题,C语言的,就是int x=5; if(x==5) K=2;这句话意思是:当x确实等于5,即if判断条件为真,然后执行 k=2; 那假如这样 if(x=5) K=2;我为x赋值5,这个if的判断条件为真么?可以执行k=2;么?那假如 if(x=0) k=2;还执行么?
我用的编译器是vc6.0

复制表达式x=5本身是有值的,这个值等于左值。也就是说x=5这个式子的值是x,也就是5。而x=5这个式子的值是5不为零,就是真的,还会执行k=2。
一般来说,if后面语句是禁止使用单等于号,也就是赋值号的,就是为了防止出错。
980515024 这位回答的有错误。if(x=5)编译是不会报错的。
如果是x=0,这个表达式的值就是0,也就是假的,就不执行后面的语句了。用什么软件编译无所谓,6.0还是dev还是vs08都行。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-11
赋值语句永远是真,所以要执行
优秀的程序员就需要养成好的习惯,最好判断语句写成if(5==x),即使误输入少了一个“=”,即if(5=x),这样编译时会报错,若写成if(x==5),误输入为if(x=5),程序将继续,大程序查错就困难
第2个回答  2010-11-11
对于if语句既然你知道里面的判断语句是表达式,那么当你要在该语句中为变量赋值时就应该知道赋值的规则啊!赋值和相等时不一样的!如你所问:if(x=5)这是错误的,编译器是不会认同这样的表达式,因此认为是假,不执行k=2,下面的一样!
第3个回答  2010-11-11
个人感觉这里的“=”是赋值符号,将等于号后面的值赋给了x这样if必然成立,随后由于if的条件成立这样很正常的就会输出K的值了,个人观点
第4个回答  2010-11-11
赋值运算返回左值
x=5 返回5 true
x=0 返回0 false

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网