Эквивалент массива Bare-String
Я могу сделать это без проблем:
const char* foo = "This is a bare-string";
Я хочу иметь возможность делать то же самое с массивом:
const int* bar = {1, 2, 3};
Очевидно, что этот код не компилируется, но есть ли какой-нибудь массив, эквивалентный голой строке?
1 ответ
Решение
Вы не можете сделать это:
const int* bar = {1, 2, 3};
Но вы можете сделать это:
const int bar[] = {1, 2, 3};
Причина в том, что char* в C (или C++) имеет дополнительную функциональность, помимо работы в качестве указателя на символ, он также работает как "строка C", таким образом, добавлен метод инициализации (специально для char*):
const char* foo = "This is bare-string";
Лучший.