Эквивалент массива 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";

Лучший.

Другие вопросы по тегам