Почему «строка» относится к категории констант на языке C? даже если он не имеет численного значения, связанного с ним, в отличие от «константы символа», которая имеет фиксированное целочисленное значение (значение ASCII), связанное с ним. В какой ссылке строка рассматривается как константа на языке C?Почему «строка» считается «константой» на языке C?
0
A
ответ
0
Потому что это букваль, и предполагается, что литералы не изменяются.
Рассмотрим пример
char *s = "Shubhamdubey2111";
char name[strlen(s) + 1];
strcpy(name, s);
//...
*s = 'C';
//...
if (strcmp(name, "Shubhamdubey2111") == 0 )
{
// Oops! Do not trust your eyes!
}
+0
.. Спасибо за ваш ответ! –
+0
@ Shubhamdubey2111 Нет вообще. Добро пожаловать.:) –
0
строковые литералы хранятся в инициализируется только для чтения область памяти процесса. По этой причине строковые литералы не могут быть изменены.
'даже если он не имеет численного значения, связанного с ним,' ... что вы имеете в виду? –
уточните свой вопрос больше –
Или лучше, удалите его и прочитайте несколько первых глав в C для книги для новичков. Очевидно, что никаких предварительных исследований не было. –