永发信息网

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 楼上的答案是对的,如果你给结果是输出结果,那你的四个选项都不对啊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯