标题:c的指针问题
只看楼主
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
 问题点数:0 回复次数:3 
c的指针问题

请试着运行下面的代码:
#include<stdio.h>
int main(void)
{
int zippo[4][2]={1};
printf("zippo=%p\n&zippo=%p\n&zippo[0]=%p\n&zippo[0][0]=%p",
zippo,&zippo,&zippo[0],&zippo[0][0]);
return 0;
}
为什么以上的几个地址会相同?如zippo的值是数组首元素的地址,而&zippo是不是该指针的指针?若改用指针变量值就不同了如:
int *p=zippo[0];
printf("\np=%p,&p=%p",p,&p);
请说明其工作原理,谢谢。

搜索更多相关主题的帖子: 指针 zippo int void 
2007-04-20 12:14
k_summer7
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-3-19
得分:0 
当然相同了,这四个都是指数组元素的首地址,其实在c语言中根本就没有多维数组的概念,都是一维的,只是层层嵌套而已;
用int(*zippo)[2]可能会更好理解一些;
2007-04-21 15:06
oclassic
Rank: 1
等 级:新手上路
帖 子:140
专家分:0
注 册:2007-4-18
得分:0 
不太清楚,高手指教下啊 %p 做何解?

编程群号码30772309群刚刚建立一个论坛http://tszbbs./?u=2 诚招斑猪哦
2007-04-21 15:08
ibiancheng
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2007-4-3
得分:0 
zippo是数组的首元素的地址,是个常量.
应该不可以再用&zippo来取它的地址吧....

执著的信念,坚定的自信,勤奋的努力才是通向成功的捷径! !!
2007-05-11 20:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-133425-1-1.html




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

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