上一学期是做什么的?

Tha*_*hik 9 c++ loops cout

在这个声明中

for (i = 1; i <= n; i++) {
    cout << i << " \n"[ i == n ];
}
Run Code Online (Sandbox Code Playgroud)

cout声明中的最后一个词是[i==n]做什么的?这个循环打印空间分开的数字我想.

Man*_*rse 14

这是一种迟钝的写作方式:

(i == n ? '\n' : ' ')
Run Code Online (Sandbox Code Playgroud)

也就是说,当i == n打印换行符时,否则打印空格.

我们的想法是用空格分隔数字,并在打印完所有数字后添加换行符.


asi*_*mes 7

索引字符' '或字符是一种愚蠢的方式'\n'.这有同样的想法并打印"Hello World":

#include <iostream>

int main() {
        for (int i = 0; i < 11; i++)
                std::cout << "Hello World"[i];
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

i == n或要么是truefalse.当使用转换为整数进行索引时,[i == n]您将获得第一个或第二个元素