| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 724 人关注过本帖
标题:一个关于指针数组的问题,弄不懂。
取消只看楼主 加入收藏
woai_kmust
Rank: 2
等 级:论坛游民
帖 子:29
专家分:41
注 册:2011-8-31
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
一个关于指针数组的问题,弄不懂。
#include "stdio.h"
main()
{char *p[3]={{"000"},{"000"},{"000"}};
printf("%x\n %x\n %x\n",p,p[1],p[2]);
}

在Vc++6.0 上输出
42002c
 42002c
 42002c
在wint-c 上输出
19a
 19a
 19a


我的理解是,p[0],p[1],p[2]分别指向不同的地址,他们虽然指向的字符数组的内容相同,但显示为何是p[0].p[1].p[2]呢,难道不分别为三个{"000"}开辟不同的内存空间吗?
搜索更多相关主题的帖子: include 
2011-08-31 22:10
woai_kmust
Rank: 2
等 级:论坛游民
帖 子:29
专家分:41
注 册:2011-8-31
收藏
得分:0 
描述错了,我草,那句话是,为何是p[0].p[1].p[2]相等呢。
2011-08-31 22:17
woai_kmust
Rank: 2
等 级:论坛游民
帖 子:29
专家分:41
注 册:2011-8-31
收藏
得分:0 
回复 3楼 pauljames
这怎么这么牛啊
2011-08-31 22:30
woai_kmust
Rank: 2
等 级:论坛游民
帖 子:29
专家分:41
注 册:2011-8-31
收藏
得分:0 
回复 9楼 qq8801103
试了,输出的都是p[0],p[1],p[2]所指向的首个字符'c'的asc码啊。
我想问的是,尽管p[0],p[1],p2]所指向的字符串相同,但是不分别为这些字符串申请相应的内存地址吗?
2011-09-01 21:51
woai_kmust
Rank: 2
等 级:论坛游民
帖 子:29
专家分:41
注 册:2011-8-31
收藏
得分: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
woai_kmust
Rank: 2
等 级:论坛游民
帖 子:29
专家分:41
注 册:2011-8-31
收藏
得分:0 
回复 12楼 Luminal
thank you,有多一种理解了。编译器优化这说。
2011-09-02 12:10
快速回复:一个关于指针数组的问题,弄不懂。
数据加载中...
 
   



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

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