| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 497 人关注过本帖
标题:在二维数组中.............................
只看楼主 加入收藏
zh77
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:84
专家分:22
注 册:2011-8-5
结帖率:100%
收藏
已结贴  问题点数:4 回复次数:9 
在二维数组中.............................
有一个二维数组a[3][4]
 a表示a[0][0]的地址如果 a=2000那么a+1=2016;
书上说*(a+1)也是2016 让我蛋疼得不行啊........
求中文解释  O(∩_∩)O谢谢
搜索更多相关主题的帖子: 中文解释 
2011-08-20 18:05
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
没什么好解释,记住就好
2011-08-20 18:08
lccwyj
Rank: 4
等 级:业余侠客
帖 子:71
专家分:203
注 册:2011-5-6
收藏
得分:0 
*(a+1)就是a[1]
a是个二维数组
a[1]是a[1][0]的地址
int a[2][2]={1,2,3,4},*p=*(a+1);
printf("%d",*p);输出3
2011-08-20 18:11
zh77
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:84
专家分:22
注 册:2011-8-5
收藏
得分:0 
回复 2楼 voidx
可是a+1是地址*(a+1)是内容(初涉指针,我是这么想的),地址和内容这么可能一样呢?
2011-08-20 18:14
zh77
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:84
专家分:22
注 册:2011-8-5
收藏
得分:0 
回复 3楼 lccwyj
我也没看你对不对  那你可以解释一下 这个吗
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-08-20 18:23
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
*(a + 1) 也是指针,他的地址和值相同
更神奇的是 &a[0] == &a[0][0] 而 a[0] == a[0][0] 却不一定成立

ps:如果你把某个 int 型变量的地址放在这个 int 型变量中,他们就相同了

[ 本帖最后由 voidx 于 2011-8-20 18:29 编辑 ]
2011-08-20 18:27
kscooh1
Rank: 2
等 级:论坛游民
帖 子:53
专家分:25
注 册:2011-8-8
收藏
得分:0 
刚接触指针,还不明白。
2011-08-20 18:34
zh77
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:84
专家分:22
注 册:2011-8-5
收藏
得分:0 
回复 6楼 voidx
好吧  我还是选择记住吧...........
2011-08-20 18:49
khaz
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:130
专家分:188
注 册:2011-4-21
收藏
得分:4 
a的类型是行指针,即a是 char (*)[4]的类型,
如果还看不懂
可以这样,声明一个char (*p)[4]=a;
这里p和a是同样的类型。
既然是行指针,a+1就是指向下一行了,所以每行4个int元素,int是4个字节,所以就是4×4=16的递增了。

搞清楚上面说的 就很容易明白了。
另外日常很多人都说a是个二级指针,其实是不对的,因为char **p=a编译器会警告
char *p=a也是警告的。
char (*p)[4]=a 是没有警告的!

关于char (*p)[4]的理解 可以参看相关书籍资料

[ 本帖最后由 khaz 于 2011-8-20 20:57 编辑 ]
2011-08-20 20:54
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:0 
不同类型的指针,恰好指向了同一个地方。如果赋值给同类型的指针变量,作自增运算就可以看得很清除了。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-08-21 10:10
快速回复:在二维数组中.............................
数据加载中...
 
   



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

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