| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 444 人关注过本帖
标题:一个指针与二维数组的变换问题?
只看楼主 加入收藏
震中地带
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:171
专家分:359
注 册:2012-3-26
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
一个指针与二维数组的变换问题?
*(p[i]+j)=(*(p+i))[j]
哪位前辈给解释一下这是什么意思,左面的式子是怎样变成右面的?
搜索更多相关主题的帖子: 问题 
2012-04-16 20:27
cuijunchao
Rank: 5Rank: 5
来 自:湖南桂东
等 级:职业侠客
威 望:3
帖 子:132
专家分:386
注 册:2012-4-4
收藏
得分:0 
就一个式子怎么解释,完整点。
2012-04-16 21:41
sunqing
Rank: 2
来 自:重庆市
等 级:论坛游民
帖 子:28
专家分:55
注 册:2012-3-8
收藏
得分:4 
*(p[i]+j)=(*(p+i))[j]
太不具体了,我猜你的p定义成了二维指针(*P)[];,或二维数组p[][];
*(p+i)是指针指向列的指针(为第i行首地址),等于p[i];所以可以p[i]+j,此为第i行j列的指针加*为元素
2012-04-16 21:54
震中地带
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:171
专家分:359
注 册:2012-3-26
收藏
得分:0 
p是一个指向a[i][j]的指针
原句是这样的:*(*(p+i)+j)=*(p[i]+j)=(*(p+i))[j]=p[i][j]=a[i][j]
2012-04-16 22:24
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
收藏
得分:6 
说法有误,p并不是指向a[i][j]的指针,而是指向数组的指针,也就是说p=a。
如果p是一个指向a[i][j]的指针,那么p应该是char* 类型,且p=&a[i][j]。
*(*(p+i)+j)=*(p[i]+j)=(*(p+i))[j]=p[i][j]=a[i][j] 这个式子里面的五个表达式都是一个意思。每一个式子的p和a都可以互换。
搞明白几个基本要素:
*(p+i)和p[i]是表示第i行的地址
*(*(p+i)+j)=*(p[i]+j)=(*(p+i))[j]  表示第i行,第j列的元素的值。比较常用的就第一种方法吧。第三种写法比较少见。
 
2012-04-17 02:25
快速回复:一个指针与二维数组的变换问题?
数据加载中...
 
   



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

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