#include<stdio.h>
int main(int argc, char const *argv[])
{
int a[3][3]={0,1,2,3,4,5,6,7,8};
int (*p)[3];
p=a+1;
printf("%d\n",&a[1][0] );
printf("%d\n",&a[1] );
printf("%d\n", *p);
printf("%d\n",p);
printf("%d\n", **p);
return 0;
}
/*
指针p的基类型为char []
指针p指向一个一维数组
// 显示数组元素的地址
printf("%d\n",&a[1][0] );
// 显示第二行的首地址
printf("%d\n",&a[1] );
// 取出p中所存地址对应的值
printf("%d\n", *p);
// 显示p中所存地址
printf("%d\n",p);
1. 指针p中存放的是是一维数组的首地址,也就是数组中第一元素的地址
2. *p的意思取出p中的地址对应值,这个值是一个数组,所以显示的是一维数组的首地址。(首地址代表了数组)
3. **p 取出数组中第一个值
*/