int x=0,y=0,z=0; x++&&y++||z++; printf("%d,%d,%d",x,y,z);求大神解决为什么答案是1 0 1
答案:2 悬赏:20 手机版
解决时间 2021-03-17 08:58
- 提问者网友:聂風
- 2021-03-16 17:15
int x=0,y=0,z=0; x++&&y++||z++; printf("%d,%d,%d",x,y,z);求大神解决为什么答案是1 0 1
最佳答案
- 五星知识达人网友:英雄的欲望
- 2021-03-16 18:40
应该是1,0,1吧?因为&&的优先级比||高,所以 x++&&y++||z++;被解释为( x++&&y++)||z++;。由于x++为0是“假”,所以不再执行y++;又由于||前的结果为“假”,所以还要再执行z++才能确定整个表达式的值。故只执行了x++和z++,所以最后输出结果是1,0,1。希望对你有帮助。
全部回答
- 1楼网友:西岸风
- 2021-03-16 19:57
x=y=1; 使得变量x和y的内容都为1
z=x++; 表达式的计算结果使z的内容为x的初始值,即z的内容为1, 同时x的内容变为2
y=z++; 表达式的计算结果使y的内容为z的初始值,即y的内容为1,同时z的内容变为2
x=y++;表达式的计算结果使x的内容为y的初始值,即x的内容为1,同时y的内容变为2
楼上的答案是对的,如果你给结果是输出结果,那你的四个选项都不对啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯