int main()
{
int buf[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
// int *p[3]; //指针数组
int(*p)[3]; //定义了一个指针,指向int [3]这种数据类型,指向二维数组的指针
printf("%d\n", sizeof(p));
p = buf;
printf("%d,%d\n", p, p + 1);
int i;
int j;
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d\n", p[i][j]);
printf("%d\n", *(*(p + i)+j));
}
}
return 0;
}
表示 | 说明 |
---|
int buf[3][4] | 二维数组名称,buf代表数组首地址 |
int(*a)[4] | 定义一个指向int [4]类型的指针变量a |
a[0] ,*(a+0) ,*a | 0行,0列元素地址 |
a+1 | 第一行首地址 |
a[1] ,*(a+1) | 第1行,0列元素地址 |
a[1]+2 ,*(a+1)+2 ,&a[1][2] | 第1行,2列元素地址 |
*(a[1]+2) ,*(*(a+1)+2) ,a[1][2] | 第1行,2列元素的值 |