#include<stdio.h> int main() { int i,j,t; i=j=2; t=++i||++j; printf("%d,%d,%d\n",i,j,t); return 0; }

运行后为什么j是2呢?... 运行后为什么 j是2呢? 展开
 我来答
llq6llq
2012-05-28 · TA获得超过1106个赞
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:134万
展开全部
因为
t=++i || ++j; ①
这一句

前面已经初始化i=j=2;
在①中的++i的时候,i的值变为3
++i 和 ++j 中间使用的 || 连接的,是或的意思
即如果 ++i 为true,则不运行后面的 ++j 并直接返回真,即 ++j 被短路
如果 ++i 为false,则运行后面的 ++j ,根据 ++j 的结果,将true或false返回给 t

而 ++i 执行的结果为3,在C语言中,0为false,其余都为true
即 ++i 得到的是true,所以 ++j 没有被执行,j的值没有变,仍为2
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式