Выполняют ли эти две строки кода одинаковые результаты? Если бы я имел эти строки в функции, это строка, хранящаяся в стеке в обоих случаях? Есть ли веская причина, почему я должен использовать один над другим, кроме того, что вам не нужно объявлять нулевой терминатор в первой строке кода?В C, можно ли инициализировать строку в объявлении указателя так же, как я могу инициализировать строку в объявлении массива?
char s[] = "string";
char* s = "string\0";
Для получения информации вам не нужно использовать \ 0 во втором примере. При использовании двойных кавычек \ 0 всегда вставляется в массив. – RMAAlmeida
И только для словаря то, о чем вы говорите, это не назначения, а декларации с инициализаторами. Они подчиняются различным правилам. E.g ваш первый оператор не будет разрешен как назначение, вы не можете назначить массивы. –
Возможный дубликат [C: различия между указателем и массивом] (http://stackoverflow.com/questions/1335786/c-differences-between-pointer-and-array) –