有关逻辑表达式问题设有定义"int x=1,y=1,c"则执行语句“c=x--ll--y;"后,x,y,c的值分别是:x

问题描述:

有关逻辑表达式问题
设有定义"int x=1,y=1,c"则执行语句“c=x--ll--y;"后,x,y,c的值分别是:x=0,y=1,c=1.没有理解x,y为什么0,1,我觉得是1,0;这可能归根是自加自减运算符没搞懂.请指教.
1个回答 分类:综合 2014-12-08

问题解答:

我来补答
这个结果与编译器有关.
x--表示先用x值参与运算再将x值减一.
--y表示先将y值减一,再用y值参与运算.
这样,c=x--ll--y就相当于c=1||0,那么c等于1.x自减后等于0,y自减后等于0.
但实际上,编译器在这里偷懒了,当编译器知道||运算符号的前一个数字是1时,就不再进行后面的运算了,因为后面的值已经无关紧要,无论后值是1是0,表达式都为1.所以,--y没有机会执行.
最终结果是,x=0,y=1,c=1
 
 
展开全文阅读
剩余:2000
上一页:100 ,11
下一页:29