| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 590 人关注过本帖
标题:关于指针指向数组问题
只看楼主 加入收藏
wlesd
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2009-7-5
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:6 
关于指针指向数组问题
小弟不明白的是在
一维数组的指针可以得到数组的第一个元素的内存地址,也可得到该地址的值
int a[3] = {1,2,3};
int *pa = a;
而二维数组怎么不可以呢。
int b[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
int *pb = b;
printf("%p",b);
printf("%d",*b);
怎么实现*(b+1)是得到5这个值呢?
搜索更多相关主题的帖子: 内存 元素 
2012-02-22 15:40
cqm9266
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:174
专家分:186
注 册:2011-10-28
收藏
得分:1 
二维数组 指针指向的是第一行第一列的数字   如果要得到5 应该是 *(p+1)+1

没病的人说有病的人有病,有病的人说没病的人有病。到底是谁有病?
2012-02-22 15:49
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:1 
printf("%d\n",*(*(b+1)+1));

不管怎么走、总有一个终点...
2012-02-22 15:49
慕羿
Rank: 4
等 级:业余侠客
帖 子:40
专家分:206
注 册:2012-2-16
收藏
得分:1 
你们试过没有?随口乱说?

*(b+3*1+1)
2012-02-22 19:37
落红有情
Rank: 2
等 级:论坛游民
帖 子:11
专家分:27
注 册:2012-2-20
收藏
得分:1 
课本上的东西可以让你明白的,理解*运算符和[]运算符,实在还不知道,可以稍微学一点汇编,了解就可以了,个人观点!
2012-02-22 22:33
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:1 
int b[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
 int *pb = b;
 printf("%p",b);
 printf("%d",*b);//*b是个地址,在二维数组中,要用两个星号**
“怎么实现*(b+1)是得到5这个值呢?”    //b是一个数组名是固定的值不能加1的,*(b+1)也还是个地址,不可能得到5的

最基础的往往是你最容易忽略的!
2012-02-22 22:56
wlesd
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2009-7-5
收藏
得分:0 
谢谢各位大大的解释,小弟感激不尽,我会去在做研究。
2012-02-23 08:10
快速回复:关于指针指向数组问题
数据加载中...
 
   



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

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