若x,y,z的值都为1,则执行表达式w=++x‖++y&&++z后,x,y,z的值为?我想知道为什么
答案:2 悬赏:30 手机版
解决时间 2021-02-20 21:46
- 提问者网友:萌卜娃娃
- 2021-02-19 23:43
若x,y,z的值都为1,则执行表达式w=++x‖++y&&++z后,x,y,z的值为?我想知道为什么
最佳答案
- 五星知识达人网友:神也偏爱
- 2021-02-20 00:17
#include<stdio.h>void main(){\x09int x=1,y=1,z=1;\x09int w=++x||++y&&++z;\x09printf("%d,%d,%d,%d",x,y,z,w);\x09getchar();}结果:2,1,1,1w=++x||++y&&++z运行流程&&优先级高,则等价于w=++x||(++y&&++z)但注意||运算符有一个特殊之处,从左向右计算,如果能够确定表达式的值,则停止计算左侧++x的值为2,则整个表达式值为1,不论||右侧值为多少,右侧就不计算了经验证题目中的表达式结果与w=++x||(++y&&++z)完全相同另测试w=0||(++y&&++z),则x=1,y=2,z=2,w=1w=1||(++y&&++z),则x=1,y=1,z=1,w=1(||左面是非零的话,右侧括号内容根本不计算)
全部回答
- 1楼网友:妄饮晩冬酒
- 2021-02-20 00:57
这个问题我还想问问老师呢
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯