【发布时间】:2018-09-06 09:12:14
【问题描述】:
我不明白这段代码的输出:
long i=5, j=10;
if (++i || ++j) printf("%ld %ld\n", i, j);
else printf("Prog1\n");
输出是 6 和 10。我希望是 6 和 11。为什么 j 没有增加?
【问题讨论】:
-
您的 if 语句正在评估 OR 语句,因此首先在管道左侧读取 ++i ||和增量。它忽略了 ++j,因此它最终是 6 和 10...
-
我不知道你为什么要这样做,但你可能不应该......你想在这里达到什么效果?
标签: c logic pre-increment