在C语言中x=1,y=2,z=3,x=x||y&&z;谁给我解释一下为什么x值为1

[复制链接]
查看11 | 回复4 | 2012-5-31 16:29:01 | 显示全部楼层 |阅读模式
x=x||y&&z为赋值语句,将表达式x||y&&z的值赋值给x;右边表达式先运算&&,后运算||,又因为x的初始值为1,1或上任何值,结果都为1,后面的与操作无论是什么结果都不影响整个表达式的值;因此,最终x的值既是1!...
回复

使用道具 举报

千问 | 2012-5-31 16:29:01 | 显示全部楼层
首先弄清||和&& 还有=的优先顺序!&&优先于||,而且要注意||和&&是逻辑符号,非零的数都看成1,。 先看y&&z,由于z和y都是非零值,所以y&&z这部分结果是1.再看x||1,由于1非零值,所以结果还是1.所以赋值号右边的结果就是1.最后赋值运算,x的结果就是1了。...
回复

使用道具 举报

千问 | 2012-5-31 16:29:01 | 显示全部楼层
xyz都不为0,x||Y,xy都为真,所以为一,然后&&z,z也为真,所以.x最后的为1....
回复

使用道具 举报

千问 | 2012-5-31 16:29:01 | 显示全部楼层
关键在x的二次赋值,x=1||2&&3,逻辑运算1||2&&3为真,所以x=1。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行