2 lsytop LSYtop 于 2015.05.27 16:47 提问

c语言里面的关系表达式

x=y=5; t=--x|| --y; 后,y的值是.t的值是 为什么?

11个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.05.27 16:59
已采纳

y=5,t=1
主要知道2点
1、运算符优先级,赋值=号优先级比||低,所以先计算--x|| --y,再把结果0或1给t
2、短路问题--x|| --y中--x是4,非0及真,后面的--y就不执行了。

LSYtop
LSYtop 谢谢,这个答案是对的,我自己也搞懂了,一个是注意关系表达式里面非0就是1,还有一个是主要知道结果值后就会立刻停止计算,所以后面的不运行了。。。
2 年多之前 回复
KGSIR
KGSIR   2015.05.27 16:51

y-4,t-4,都是减过1

bdmh
bdmh   Ds   Rxr 2015.05.27 16:53

减号在前,是先进行减操作,减号在后相反

yu452148611
yu452148611   2015.05.27 16:59

y=5, t=4, 先做--x,得 x=4, 或判断左侧为真,不继续右边运算

yu452148611
yu452148611   2015.05.27 16:59

y=5, t=4, 先做--x,得 x=4, 或判断左侧为真,不继续右边运算

yu452148611
yu452148611   2015.05.27 16:59

y=5, t=4, 先做--x,得 x=4, 或判断左侧为真,不继续右边运算

albertbush
albertbush   2015.05.27 17:01
  • t=1;y=5;x=4
  • --x后,x=4;因为||,所以不继续执行,--y没做
chentravelling
chentravelling   2015.05.27 17:10

很明显楼下是错误的。正确结果应该是x=4,y=5,t=1。

zx1356976553
zx1356976553   2015.05.27 18:55

y=5,t=1
运算符优先级的问题,赋值运算优先级比或运算(||)优先级低,所以先计算后面的,再把逻辑运算结果0或1赋值给t。

ljf69
ljf69   2015.05.28 11:33

TZ该去学习运算优先级哦

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片