Эквивалент массива Bare-String

Я могу сделать это без проблем:

const char* foo = "This is a bare-string";

Я хочу иметь возможность делать то же самое с массивом:

const int* bar = {1, 2, 3};

Очевидно, что этот код не компилируется, но есть ли какой-нибудь массив, эквивалентный голой строке?

0

Решение

Вы не можете сделать это:

const int* bar = {1, 2, 3};

Но вы можете сделать это:

const int bar[] = {1, 2, 3};

Причина в том, что char * в C (или C ++) имеет дополнительную функциональность, помимо работы в качестве указателя на символ, он также работает как «строка C», таким образом добавлен метод инициализации (специально для char *):

const char* foo = "This is bare-string";

Лучший.

1

Другие решения