Неожиданное поведение определения строки C
Насколько я знаю, приведенный ниже код не должен работать. Тем не менее, как-то это нормально на моем компиляторе. Пожалуйста, может кто-нибудь объяснить.
int main()
{
char *string;
string = "Goo";
}
1 ответ
Решение
Насколько я знаю, приведенный ниже код не должен работать
Боюсь, ваша информация неверна.
char *string;
string = "Goo";
совершенно верно. Это в основном,
- Определить
char
указательstring
, - Поместите базовый адрес строкового литерала
"Goo"
вstring
,
Однако вместо того, чтобы быть char
указатель, если string
был бы массив, тогда это было бы невозможно, так как массив не может быть назначен (за исключением времени определения, хотя список заключен в скобки).