指针数组
本质是数组
只不过呢,它里面存放的数据类型不是int,也不是char这类基本类型,而是一个指针类型,说白了就是地址,所以叫指针数组! 记住:是存放指针的数组!
int *p[n]
数组指针 (行指针)
本质是指针
只不过是指向一个数组的指针,也称之为“行指针”
int (*p)[n]
p是一个指针,指向一个int类型的一位数组,这个一位数组的长度是n。也就是说执行p+1时,p要跨过n个int类型数组的长度。
int a[3][4]; //定义一个二维数组
int(*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一位数组
p=a; //将该二维数组的首地址赋值给p,也就是a[0]或&a[0][0]
p++; //该语句执行过后,也就是p=p+1;p跨过行a[0][]指向了行a[1][]