for (int i = 0; i < n; ++i) {
cout << a[i] << " \n"[i == n - 1];
}
-
" \n"
:这是一个包含两个字符的字符串字面值,其中第一个字符是空格' '
,第二个字符是换行符\n
。 -
[i == n - 1]
:这是一个索引操作符,根据条件i == n - 1
的结果来决定访问字符串字面值中的哪个字符。
当i
不等于n - 1
时,i == n - 1
为false
(即0
),因此" \n"[0]
返回空格字符' '
。
当i
等于n - 1
时,i == n - 1
为true
(即1
),因此" \n"[1]
返回换行字符\n
。
该用法等价于:
for (int i = 0; i < n; ++i) {
cout << a[i] << (i == n - 1 ? '\n' : ' ');
}