我不明白怎么办[i == n-1]
在这种情况下工作
for (int i = 0; i < n; i++) {
cout << a[i] << " \n"[i == n - 1];
}
表达i == n-1
是一个布尔表达式,其计算结果为1
(正确)或0
(错误的)。
" \n"
是一个包含 3 个字符值的数组:
-
Space
(0x32)
-
\n
(0x0D)
-
NULL
(0x00)
所以完整的表达式将计算为Space
or the \n
,取决于如果i
是数组的最后一个索引a
.
带有 cout 的完整 for 循环将打印空格,直到i
位于数组的末尾,然后最终会打印一个\n
在最后一个元素之后。
它很聪明,但也令人困惑。我会告诉程序员找到更好的方法。
我可能更喜欢使用三元运算符(? :
)
for (int i = 0; i < n; i++) {
cout << a[i] << (i == n - 1) ? "\n" : " ";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)