#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个字节 求大神解惑
28在十六进制里不就是十进制的40么 所以就是40个字节
第四行应该数据2*3*4=24个字节 十六进制的18就是十进制的24
printf("%d %d\n",array+0,array+1);