免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1462 | 回复: 5
打印 上一主题 下一主题

关于常量的问题 (改变常量) [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之四川
日期:2016-02-15 17:12:32
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-27 10:54 |只看该作者 |倒序浏览
foo(const char *s)
{
unsigned int n=(unsigned int)s;
*((char*)n) = 'A';
}

main()
{
const str[]="hello";//这样str 变成 Aello;
char *str="hello";//这样段错误
foo(str);
puts(str);
}

论坛徽章:
1
15-16赛季CBA联赛之四川
日期:2016-02-15 17:12:32
2 [报告]
发表于 2005-11-27 11:00 |只看该作者

re

我看了一下常量的地址,不是在一起的,为什么?
char *s="hello";
const s1[]="hello";
//上面的有什么区别???
printf ("%p\n",s);
printf ("%p\n",s1);

out:
0xbfffea70
0x8048480

论坛徽章:
0
3 [报告]
发表于 2005-11-27 11:34 |只看该作者
str是数组,是常量
两个变量,做两次付值.地址一定要连在一起吗?

[ 本帖最后由 x911 于 2005-11-27 11:38 编辑 ]

论坛徽章:
1
15-16赛季CBA联赛之四川
日期:2016-02-15 17:12:32
4 [报告]
发表于 2005-11-27 11:50 |只看该作者
不是这个意思 我的意思是说是否他们的地址是在不同的区域内(静态存储区域,栈,堆)?

论坛徽章:
0
5 [报告]
发表于 2005-11-27 12:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2005-11-27 12:03 |只看该作者
这种问题 几乎每天都会在论坛上出现.你去搜索以下旧帖子吧.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP