Вопрос очень тонкий по деталям, но:
char arr[] = {'a','b','c', 0};
или
char arr[] = "string";
EDIT
В ответ на вопросы:
char s1[] = "hi";
char s2[] = {'h','i',0};
memcpy(s1, "by", sizeof(s1));
memcpy(s2, "by", sizeof(s2));
cout << ios::hex << &s1 << endl;
cout << ios::hex << &s2 << endl;
cout << s1 << endl;
cout << s2 << endl;
Печать:
80xbfffed72
80xbfffed6f
by
by
По крайней мере, в моей системе это выглядит так, как будто они расположены в одном и том же пространстве памяти, я не вижу никаких проблем или различий. Например, C определяет string
как массив символов с нулевым символом в конце - я считаю, что это то же самое в C ++, не путать с std::string
.