程序一:
void main()
{
char p[]="helloworld\n";
p[0]='H';
printf("%s",p);
system("pause");
}
此时,可以输出“Helloworld”。
程序二:
void main()
{
char *p="helloworld\n";
p[0]='H';
printf("%s",p);
system("pause");
}
此时,程序出错。
说明:
(一)在第一种情况下:程序将p分配空间到栈中,所以可以对其进行赋值,改变p[0]的值。
(二)而在第二种情况中,p的内容被分配到了字符常量中,这时候在栈中对它进行赋值,就会出错。