1.数组名字是数组首元素的首地址
例如int a[5] ,a就是首元素的首地址,如果要定义一个数组指针需要按照如下格式定义:
int (*p)[5] = &a;
2.访问方式
定义数组指针 int (*p)[6] = &a;
可以用(*p)[n]进行访问
3.运算规则
接二中的说明,*(*p+n) 就等于(*p)[n],也就是a[n]按照这种方法可以对数组进行遍历。
如果int (*p)[2][3] = &a;那么*p =a;
*(*p+0) == **p
*(*p+n) == (*p)[n]
那么a[1][2]就是*(*(*p+1)+2),具体计算方法就是先取出a[1]就是*(*p+1)然后再计算[3],也就是*(a[1]+2),即*(*(*p+1)+2)
4.关于*变量
*变量就是标识在定义时修饰的是变量类型,例如 int *p = &a[0];这里表示的是p是个指针变量,指向的是int类型的地址
在运算是表示对地址进行操作,*p就是对应的地址空间进行操作。