之前自己写了一篇名为关于C语音二维数组的进一步理解。这篇算是结合指针再进一步理解。
在理解数组和指针相关内容时候总是犯迷糊,不能把他们很好的联系到一起。这个地方也很绕,反反复复学了几遍还是不能很好记忆理解,今天把他们mark一下,方便今后有时间查找,反复记忆。通过下面实验的照片理解。
最后画的一个总结图。
代码如下:方便复制验证
# include<stdio.h>
int main(void)
{
int a[3][4] = {{1,4,7,9},{10,40,70,90},{100,400,700,900}};
int i,j;
for(i=2; i>=0; i--)
for(j=3; j>=0; j--)
{
printf("&a[%d][%d] => %#p\n",i,j,&a[i][j]);
}
printf("================================\n");
printf("a=%#p,a+1=%#p,a+2=%#p\n", a, a+1, a+2);
printf("a[0]=%#p,a[1]=%#p,a[2]=%#p\n", a, a[1], a[2]);
printf("&a[0]=%#p,&a[1]=%#p,&a[2]=%#p\n", &a, &a[1], &a[2]);
printf("&a[0]+0=%#p,&a[0]+1=%#p,&a[0]+2=%#p,&a[0]+3=%#p\n",&a[0]+0,&a[0]+1,&a[0]+2,&a[0]+3);
printf("================================\n");
printf("a[0]=%#p,a[0]+1=%#p,a[0]+2=%#p,a[0]+3=%#p\n", a[0], a[0]+1, a[0]+2,a[0]+3);
printf("&a[0][0]=%#p,&a[0][1]=%#p,&a[0][2]=%#p,&a[0][3]=%#p\n", &a[0][0], &a[0][1], &a[0][2], &a[0][3]);
return 0;
}