| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3155 人关注过本帖
标题:字符串常量的生命期与存储域
取消只看楼主 加入收藏
forice
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-8-25
收藏
 问题点数:0 回复次数:2 
字符串常量的生命期与存储域
在书上看到过:
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编辑过]

搜索更多相关主题的帖子: 生命期 常量 字符 
2006-12-09 11:22
forice
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-8-25
收藏
得分:0 
呃...首先我也知道编译后是什么...
但是我要问的是char *s是字符串常量,它位于静态存储区,在程序的生命期内是恒定不变的,这句应该怎么理解...
还有,,,红色那行字说得没有错误..
现在我就不是很理解它的意思
2006-12-09 12:14
forice
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-8-25
收藏
得分:0 
噢..明白..非常感谢
2006-12-09 16:13
快速回复:字符串常量的生命期与存储域
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019143 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved