| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1468 人关注过本帖
标题:[求助]一个关于指向多维数组的指针和指针变量的问题
只看楼主 加入收藏
华南种子
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-8-1
收藏
 问题点数:0 回复次数:17 
[求助]一个关于指向多维数组的指针和指针变量的问题
main()
int a[2][2]={1,2},{3,4};
int(*p)[2],i,j;
p=a;
i=1;
j=1;
printf("a[%d,%d]=%d\n",i,j,*((*p+i)+j));
}
输出为a[1,1]=4
红色的代码行清楚,不是说(*(p+i)+j)表示的就是数组第i行第j列元素的值吗,怎么还用个*((*p+i)+j)来表示,不懂???
搜索更多相关主题的帖子: 多维 指针 变量 
2007-08-21 22:14
华南种子
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-8-1
收藏
得分:0 
红色的代码行不清楚
2007-08-21 22:15
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 
*((*p+i)+j)
这样写应该是3而不是4吧。

虽然没有导致数组越界,但是让人看起来很别扭~~~~


偶学编程,也许本身就是一个错。。。
2007-08-21 22:24
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
*((*p+i)+j)和p[i][j]完全等价(在p是数组指针的时候)
2007-08-21 22:27
华南种子
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-8-1
收藏
得分:0 
为什么是3不是4呢,能不能将*((*p+i)+j)具体解释一下啊
2007-08-21 22:28
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 
以下是引用雨中飞燕在2007-8-21 22:27:35的发言:
*((*p+i)+j)和p[i][j]完全等价(在p是数组指针的时候)

这两个等价吗?

p[i][j]应该和*(*(p+i)+j)等价吧


偶学编程,也许本身就是一个错。。。
2007-08-21 22:34
华南种子
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-8-1
收藏
得分:0 
刚刚测试得知
*(*(p+i)+j)与a[i][j]等价
而*((*p+i)+j)
表示的是数组第i行第j列的数
指针的问题很复杂啊,对于我这个初学者来说
2007-08-21 22:46
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 
而*((*p+i)+j)表示的是数组第i行第j列的数
这是错的

*(*(p+i)+j)才表示数组第i行第j列的数

偶学编程,也许本身就是一个错。。。
2007-08-21 22:48
华南种子
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-8-1
收藏
得分:0 
??那*((*p+i)+j)究竟表示什么啊
2007-08-21 22:56
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
哦。。。我看错了。。。。。。
2007-08-21 23:15
快速回复:[求助]一个关于指向多维数组的指针和指针变量的问题
数据加载中...
 
   



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

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