数组名代表着数组开始的地址
#include<stdio.h>
int main()
{
int a[10];
*(a+1)=1;
printf("%d",a[1]);
return 0;
}
从这个例子中可以看出*(a+1)与a[1]是等价的
对于二维数组,大概是这样
在一个大块中又分了若干个小块,在小块中继续分,才变成最小的一个个单元,每进行一次*,就相当于向内进入一层
#include<stdio.h>//数组与指针
int main()
{
int a[3][4];//分成3小块,每小块有4个单元
**a=0; // 先进第一个小块,再进入第一个小块的第一个单元
**(a+1)=4;//进入第二个小块,在进入第二个小块的第一个单元
*(*(a+2)+1)=9;//进入第三个小块,再进入第三个小块的第二个单元
printf("%d %d %d",a[0][0],a[1][0],a[2][1]);
return 0;
}
萌新学习中,如果有不对的地方,请多多指教!