main()
{
char *c="abhishek";
int i;
c[2]=90;
for(i=0;i<12;i++)
{
printf("%c",c[0])
}
}
Здесь вывод abZishek
. Но это должно привести к ошибке шины, потому что это строковый литерал, и мы не можем изменить его значение. Почему изменяется значение c
?Почему значение изменяется в строковом литерале
Изменение строкового литерала дает неопределенное поведение, поэтому все может случиться. –
Это всего лишь кусок байтов в памяти. – OldProgrammer
Это не должно даже компилироваться, строковый литерал имеет тип 'const char []' – Paranaix