| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1967 人关注过本帖
标题:二维数组中的元素地址问题
只看楼主 加入收藏
natto
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2016-4-10
结帖率:70%
收藏
已结贴  问题点数:20 回复次数:5 
二维数组中的元素地址问题
在二维数组中,有如下定义:
int *p,a[3][4];



我翻了三四本书,所有书都说若有表达式a[0]+1,表达式中的1的单位应当是2个字节,但在指针的章节中可以看到,这样的加减是以int为准的,于是我运行以下程序以后,发现的确实是4个字节,请教一下,这是书本错误么,还是我的程序有问题,运行环境32位windows系统,vc6.0;以下结果在附件图片中:望各位前辈能解惑,谢谢
程序代码:
#include<stdio.h>
main()
{
    int *p,*q,a[3][4];
    p=a+0;
    q=a[0]+1;
    printf("%4d %4d\n",p,q);
}

图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: windows 运行环境 表达式 图片 元素 
2016-04-25 16:46
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:4 
不知道书上具体怎么写的,能截图看看吗?
2016-04-25 18:08
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:4 
回复 楼主 natto
和你用什么编译系统有关系。有的是2节,有的是4节
2016-04-25 19:16
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10551
专家分:42996
注 册:2014-5-20
收藏
得分:4 
printf("%d\n",sizeof(int));
2016-04-26 08:37
未来大仙
Rank: 6Rank: 6
来 自:黑窟窿
等 级:侠之大者
威 望:4
帖 子:263
专家分:491
注 册:2015-6-20
收藏
得分:4 
二维数组,其实就是多个一维数组的组合,比如你的a[3][4] 就是 3个 a[4] 的数组拼在一起了,   a[0]  按地址来说的话,就是第一行的第一个的地址,那么a[1]就是第二行的第一个的地址,那么 +1就是往右边移动一个地址,  你这里声明的是int类型,一般是四个字节,所以每个地址相差4

好好学习,天天向上!
2016-04-26 10:38
nupt_陈小二
Rank: 2
等 级:论坛游民
帖 子:13
专家分:36
注 册:2016-4-17
收藏
得分:4 
vc中int都是4个字节。
2016-04-26 10:51
快速回复:二维数组中的元素地址问题
数据加载中...
 
   



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

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