看一下为什么?
2个回答
展开全部
int x=1,y=1,z=1;
int w;
w= ++x || ++y && ++z; 这是 赋值语句,而这个语句是逻辑表达式,它可以写成:
w = (++x) || (++y && ++z);
看成 w = A || B; 逻辑或 运算, 如果 A 或 B , 有 一个 为 真,结果 就是真。
逻辑或 运算 有 这样的 规则: 如果 A 为真,结果就为真,同时 跳过 B 的计算。
我们的情况 正好就是 跳过 B.
因为 x初值1 , ++x 是前缀加,要先增 1,再用于表达式,于是 x 变 2。凡不等于 0 为“真”,所以 2 也是“真”。 跳过 B. (y=1,z=1 不变化)
逻辑表达式为真。所以 w 为真。真用 1表示。w=1.
---
4个答案里 选 A。
int w;
w= ++x || ++y && ++z; 这是 赋值语句,而这个语句是逻辑表达式,它可以写成:
w = (++x) || (++y && ++z);
看成 w = A || B; 逻辑或 运算, 如果 A 或 B , 有 一个 为 真,结果 就是真。
逻辑或 运算 有 这样的 规则: 如果 A 为真,结果就为真,同时 跳过 B 的计算。
我们的情况 正好就是 跳过 B.
因为 x初值1 , ++x 是前缀加,要先增 1,再用于表达式,于是 x 变 2。凡不等于 0 为“真”,所以 2 也是“真”。 跳过 B. (y=1,z=1 不变化)
逻辑表达式为真。所以 w 为真。真用 1表示。w=1.
---
4个答案里 选 A。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询