Ответ 1
" \n"
- массив из 3 char
s. Вы можете индексировать как обычный массив. Булевы значения неявно преобразуются в целые числа: от false
до 0
, true
до 1
. Поэтому он будет использовать '\n'
для j == 5
и ' '
, если нет,
следующий код печатает квадрат символов '*'
:
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
s. Вы можете индексировать как обычный массив. Булевы значения неявно преобразуются в целые числа: от false
до 0
, true
до 1
. Поэтому он будет использовать '\n'
для j == 5
и ' '
, если нет,