数组名代表着数组开始的地址
#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;
}
萌新学习中,如果有不对的地方,请多多指教!
本文通过实例详细解析了一维和二维数组与指针之间的关系,展示了如何使用指针操作数组元素,以及在二维数组中指针的多层次应用。
1846

被折叠的 条评论
为什么被折叠?



