以下代码打印'*'
字符的正方形:
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]
部分。
有谁知道这种语法究竟有用吗?
答案 0 :(得分:21)
" \n"
是3个char
的数组。您可以索引为正常数组。布尔值隐式转换为整数:false
到0
,true
到1
。因此,如果没有,'\n'
和j == 5
会使用' '
,