字符串常量的生命期与存储域
在书上看到过:char *str(void)
{
char *p="abc";
return p;
}
main()
{
char *s="efg";
s= str();
printf("%s",s);
}
输出是abc
这程序没有错误,本来我也是一直以为输出是abc 的,但是在看了一本书上说的char *s是字符串常量,它位于静态存储区,在程序的生命期内是恒定不变的,那为什么调用了s=str()这函数后s就变成了abc了?
我就是红色那里不理解,它说的在程序的生命期内恒定不变是指哪个生命期?还有,它说的恒定不变是指什么不变?
[此贴子已经被作者于2006-12-9 11:23:42编辑过]