【发布时间】:2015-07-11 23:36:03
【问题描述】:
这是我的代码:
int main()
{
int i=2,j=2,c=2,d;
d= ++i || ++j && c;
printf("I is %d\n",i);
printf("J is %d\n",j);
printf("C is %d\n",c);
printf("D is %d\n",d);
return 0;
}
以下代码的输出是:
i is 3
j is 2
c is 2
d is 1
现在我的问题是,如果 ++i 是 3 那么为什么 ++j 是 2?
++i 和 i++ 有什么区别?另外我想知道d怎么是1?
【问题讨论】:
-
为什么在++j之后J的值还是2?
-
请注意,
++j永远不会被执行。肯定有一些关于短路和逻辑运算符的问题 -
嗯,每个人都投票支持的副本肯定回答了这个问题的标题。太糟糕了 question 并没有真正匹配它自己的标题(或重复选择)。
标签: c short-circuiting