有关逻辑表达式问题设有定义"int x=1,y=1,c"则执行语句“c=x--ll--y;"后,x,y,c的值分别是:x
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 21:22:18
有关逻辑表达式问题
设有定义"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;这可能归根是自加自减运算符没搞懂.请指教.
设有定义"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
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
有关逻辑表达式问题设有定义"int x=1,y=1,c"则执行语句“c=x--ll--y;"后,x,y,c的值分别是:x
设有定义int x=1,y;表达式y=x++的值是
设有语句“int x=3,y=1;”,则表达式(!x ||-- y)的值是
c语言的相关运算设有int x=1,y=0;则以下表达式的值为 .x-->(y+x)?10:12.5>y++?'A':'
若已定义int x,y,z 执行语句x=(x=1,y=z=2,y++,z++),x,y,z的值分别是
设有说明:int x=1,y=2;执行条件表达式(x=y)?++x:--x后,x的值为多少,为什么?
若有以下程序段:int x=1,y=2; x=x^y; y=y^x;x=x^y; 则执行以上语句后x和y的值分别是
设有定义“int x=8,y,z;”,则执行“y=z=x++,x=y= =z;”后,变量x值是________
关于c语言的一道题。设有如下定义: int x=10,y=3,z; 则语句printf("%d\n",z=(x%y,x
C语言基础题,26 已知int x=1,y;执行下述语句后变量x的值是____.y=++x>5&&++x=48&&c=6
C语言:已有定义int x=3,y=4,z=5;则表达式 (x+y)+z-1&&y+z/2的值是?
已知int x=1,y:执行下述语句后变量X的值是?