在数组中,每个数组元素中存放的内容都是地址
一维数组指针
一个例子:
char *color[5];
//此处定义了一个字符型的指针数组color,用于存放字符数据单元的地址
//如果输出color[i]的话,则输出的是字符串的首地址
二维数组指针
二维数组都可以看成一个一维数组里的元素各自拥有的一维数组
一个例子:
int a[3][4];
//a是二维数组名,a是一个二级指针
//a+1是第1行的地址,(a+i)是第i行的地址
//*(a+1)是第1行首元素的地址,*(a+i)是第i行首元素的地址
//**(a+1)是第1行首元素的值,**(a+i)是第i行首元素的值
二维指针数组的表示
一个例子:
*(*(a+i)+j)表示的是数组a[i][j],也可以写成*(a[i]+j)
//因为a[i]等价于*(a+i),都是表示地址
for循环里的指针数组
一维数组里:
for(p = a//指向数组中的首元素;p < a+n//指向数组中第n-1个元素;p++)
二维数组里:
for(j = 2;j >= 0;j--)
for(i = 0;i <= 1;i++)