# include <stdio.h>
void main(){
int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
printf("%d,",a);
printf("%d,",*a);
printf("%d,",a[0]);
printf("%d,",&a[0]);
printf("%d\n",&a[0][0]);//以上均输出第0行0列的地址
printf("%d,",a+1);
printf("%d,",*(a+1));
printf("%d,",a[1]);
printf("%d,",&a[1]);
printf("%d\n",&a[1][0]);//以上均输出第1行0列的地址
printf("%d,",a+2);
printf("%d,",*(a+2));
printf("%d,",a[2]);
printf("%d,",&a[2]);
printf("%d\n",&a[2][0]);//以上均输出第2行0列的地址
printf("%d,",a[1]+1);
printf("%d\n",*(a+1)+1);//以上均输出第1行1列的地址
printf("%d,%d\n",*(a[1]+1),*(*(a+1)+1));//输出的是一行1列的值
}
int *p[3]
表示p是一个指针数组,它有三个数组元素,每个元素值都是一个指针,指向整型变量。
int (*p)[4]
它表示p是一个指针变量,它指向包含4个元素的一维数组。