刚刚在技术面试中被问到了一个让我有点困惑的问题。
问题如下:
If
int i = -1, int j = -1, and int k = -1,
我们运行以下行:
++i && ++j && ++k
i、j 和 k 的新值是多少?我感到困惑的原因是,由于我们没有将此表达式分配给任何东西,因此 and 运算符似乎不应该产生任何区别(只有增量运算符应该)。然而,运行一个简单的测试程序很快证明我错了。有人可以向我解释一下吗,因为我以前从未见过这个练习。
这里的关键是&&
是短路。
So, ++i
首先被评估。它递增i
并返回新值,即0
,因此表达式的其余部分不会被计算。
这些值应该是0, -1, -1
如果我没错的话。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)