#include<iostream>
char *gp="hello";//常量存储区
char ga[]="hello";//静态存储区
char *foo()
{
char *p="hello"; //常量存储区
char a[]="hello"; //栈
p[0]='z'; //常量不能改
gp[0]='z'; //常量不能改
gp=a;
gp[0]='z';//可以
return a;
}
int main()
{
char *str=foo();//函数结束栈弹出消失
str[0]='z';//错
printf(str);
ga[0]='z';//允许
}
摘自《C语言点滴》213页