C ++有趣的语法,用于在std::cout中打印新行

c++ interesting syntax for printing new line in std::cout

本文关键字:std cout 新行 打印 用于 语法      更新时间:2023-10-16

以下代码打印一个由'*'字符组成的正方形:

int m = 5; int n=5;
for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++)
        std::cout << "*" << " n"[j==5];

输出:

* * * * *
* * * * *
* * * * *
* * * * *
* * * * *

我的问题是关于" n"[j==5]部分。有谁知道这种语法究竟是如何工作的?

" n"是 3 个char的数组。您可以像普通数组一样索引。布尔值隐式转换为整数:false转换为0true转换为1。因此,它将使用 'n' 进行j == 5,如果没有,则' '