int
i = 1, j = 1, k = 2;
if
((j++ || k++) && i++)
printf
(
"%d,%d,%d\n"
, i, j, k);
输出结果为2 2 2
短路现象:
或运算只要前者为真,不用判断后者,当j为1,即为真时,不再考虑k了,直接为真,判断下一个式子,因此只有j++与i++进行了运算,不用算k++,结果为2,2,2.
int
i = 1, j = 1, k = 2;
if
((j++ || k++) && i++)
printf
(
"%d,%d,%d\n"
, i, j, k);
输出结果为2 2 2
短路现象:
或运算只要前者为真,不用判断后者,当j为1,即为真时,不再考虑k了,直接为真,判断下一个式子,因此只有j++与i++进行了运算,不用算k++,结果为2,2,2.