|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 一个关于指针数组的问题,弄不懂。
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
724
人关注过本帖
标题:
一个关于指针数组的问题,弄不懂。
只看楼主
加入收藏
woai_kmust
等 级:
论坛游民
帖 子:29
专家分:41
注 册:2011-8-31
第
11
楼
收藏
得分:0
回复 6楼 penghao511
main()
{char *p="000",*p1="000",*p2="000";
printf("%x %x %x",p,p1,p2);
}
为什么p=p1=p2.
2011-09-01 22:08
举报帖子
使用道具
赠送鲜花
Luminal
等 级:
侠之大者
帖 子:140
专家分:470
注 册:2011-8-24
第
12
楼
收藏
得分:0
在vc6.0下调试的,关于楼主的问题:
是被编译器优化了,如果用debug版的就不会被优化,楼主应该是用release形式编译的,
该种情况下,编译器要对代码进行优化的,
估计被优化的原因是因为
{char *p[3]={{"000"},{"000"},{"000"}};
中的3个字符串相同,被理解成为是同一个字符串了,同一个字符串的内存地址是相同的
所以就有了楼主的疑问,也许是编译器的一个bug!!
不知这些对楼主是否有用,
2011-09-02 09:20
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
13
楼
收藏
得分:0
回复 12楼 Luminal
这是编译器自主的,没有硬性规定,这种优化冒着违反程序设计者意愿的风险,万一设计者真要三个不同的地址呢。作为程序设计者来说,也不要倚赖这种不确定的结果——如果没把握切实达到设计意图,就要想出有把握的办法,不要吊死在一棵树上。
[
本帖最后由 TonyDeng 于 2011-9-2 09:54 编辑
]
授人以渔,不授人以鱼。
2011-09-02 09:48
举报帖子
使用道具
赠送鲜花
Luminal
等 级:
侠之大者
帖 子:140
专家分:470
注 册:2011-8-24
第
14
楼
收藏
得分:5
回复 13楼 TonyDeng
TonyDeng:
你说的很对,规定是死的人是活的,谢谢你的提醒
2011-09-02 09:51
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
15
楼
收藏
得分:5
是的,规矩是死的,人是活的。牢牢把握自己的意图才是绝对宗旨,是语言和程序体现贯彻你的思想、意图,不是你受制于语言和程序!
事实上,我从来就没搞清楚*p++这样的语句到底是*(p++)还是(*p)++,所以我一般不写*p++这样的语句,要么就写后面的两种之一。这个观点,你以前也说过的。现在本主题的问题,也是如此。
授人以渔,不授人以鱼。
2011-09-02 10:04
举报帖子
使用道具
赠送鲜花
woai_kmust
等 级:
论坛游民
帖 子:29
专家分:41
注 册:2011-8-31
第
16
楼
收藏
得分:0
回复 12楼 Luminal
thank you,有多一种理解了。编译器优化这说。
2011-09-02 12:10
举报帖子
使用道具
赠送鲜花
xd1103121524
等 级:
论坛游民
帖 子:27
专家分:49
注 册:2011-8-29
第
17
楼
收藏
得分:10
不用分配,因为“000”相当于一个字符串,p[0]="000";相当于把“000”的首地址赋值给p[0],因此p[1],p[2],同理,他们的值与p[0]相同。。。。
2011-09-03 13:43
举报帖子
使用道具
赠送鲜花
17
2/2页
1
2
快速回复:
一个关于指针数组的问题,弄不懂。
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.022362 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved