(1)数组指针:
int (*p)[5]: ----> 本质上是一个指针,占用4个字节;
int a[4][5]; ----> 这里可以用 指针 p 来指向二维数组 a ,p=a;
(2)指针数组:
int *p[5]: -----> 本质上是五个指针,是指针的数组,占用4*5=20bytes;
int b[5]; -----> 这里可以用指针p[0] 来指向 一维数组 b[0];
注意p[1] - p[4] 指针还要分开指定,所以正确的初始化方式是:
for(int i = 0; i < 5; i++)
{
p[i]= &b[i];
}
(3)记忆方式:
[] 运算符比 * 运算符优先级高,先结合的运算符名称放最后,所以int *p[5] 就是指针数组,有五个指针;