首页 新闻 会员 周边 捐助

一位数组和二维数组下标及地址增长问题

0
[已解决问题] 解决于 2015-08-28 14:09

#include <stdio.h>

int main(void)
{
   int array[10];
   printf("%p   %p\n",array+0,array+1);
   printf("%p   %p\n",&array,&array+1);
   int array1[2][3];
   printf("%p   %p\n",array1+0,array1+1);
   printf("%p   %p\n",&array1,&array1+1);
}
输出的结果是↓
0028FE98 0028FE9C
0028FE98    0028FEC0
0028FE80 0028FE8C
0028FE80 0028FE98

第一个问题:输出的第一行 我能够理解 移动了4个字节,第二行应该是移动40个字节,但是结果不太明白 C0减去98 是28 为什么不是是40呢?
第二个问题:输出的第四行 为什么是18个字节 求大神解惑
涛洛伊的主页 涛洛伊 | 初学一级 | 园豆:79
提问于:2015-08-27 00:07
< >
分享
最佳答案
0

28在十六进制里不就是十进制的40么  所以就是40个字节

第四行应该数据2*3*4=24个字节  十六进制的18就是十进制的24

奖励园豆:5
小白菜T | 小虾三级 |园豆:564 | 2015-08-27 09:18
其他回答(1)
0

printf("%d   %d\n",array+0,array+1);

Launcher | 园豆:45050 (高人七级) | 2015-08-27 09:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册