2 therightoforange Therightoforange 于 2015.06.23 22:11 提问

关于基础C语言等号表达式

图片说明

6个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.06.23 22:16
已采纳

a=10是赋值,
if(a=90)意义不对,应该是if(a==90)比较两个值是否相等,如果一个等号变成了赋值语句,a等于90,然后,打印yes了

Therightoforange
Therightoforange 你的回答对我很有帮助,谢谢
2 年多之前 回复
devmiao
devmiao   Ds   Rxr 2015.06.23 23:17

a=90这个表达式的结果是90
因此永远返回false(非0就是false)

C++为了方便,赋值表达式也有值,比如
int b = a = 90;
此时 a b 都是90,因为b = (a = 90)

devmiao
devmiao 回复穷小子158: 说反了。不好意思。
2 年多之前 回复
u014052750
u014052750 非0不是true吗?
2 年多之前 回复
u012706811
u012706811   2015.06.24 00:14

a=90;是一个赋值语句,而a==90;是一个逻辑表达式,逻辑表达式只有true和false两个值.

bullzerone
bullzerone   2015.06.23 22:31

注意相等与赋值的区别,程序中的相等和数学中的相等写法不同。
有时候,为了防止这种错误,可以反着写,把 if(a==90) 写为 if(90 == a),这样出错的机会小一些。因为 90 是一个数,不是变量,它是不能被赋值的。

weixin_28834253
weixin_28834253   2015.06.24 03:03

if(a=90)
这个语句执行完的结果a会等于90
如果你是想要达到这个效果那么无可厚非,
如果你不是想要这个效果,
那可以写成。if(90==a)
前面有人已经说过这样的问题。这样你如果你误写成if(90=a)那么系统会报错。这样好过你在,编译成功后。发现结果是错的。把所有程序倒一遍。要简单的多。如果在大的程序中。一个小小运算错误?可能根本就发现不了。

u010226221
u010226221   2015.06.24 09:13

“=”赋值 if(X == Y)判定是否相同
基本上所有的编程语句都是这样的

Csdn user default icon
上传中...
上传图片
插入图片