作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 12:36:34
有关逻辑表达式问题
设有定义"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;这可能归根是自加自减运算符没搞懂.请指教.
这个结果与编译器有关.
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