数组指针和指针数组的区别

如题所述

第1个回答  2020-09-19
数组指针,是指向数组的指针。通常所说的数组指针,只是一个指针,他只能存放一个地址。一般用于多维数组。
举例说明,假设有一个四行五列的二维数组A,C语言认为它是由四个五元素的一维数组首尾相连组成的。当定义一个数组指针P时,让p指向二维数组的首地址,其实他指的也是第一个一维数组的首元素地址,当执行P+1之后,P就指向了第二个一维数组的首元素地址,或者p再+2以后就指向了第四个一维数组数组的首元素地址。
int a[4][5]={{1,2,3,4,5},{6,7,8,9,10}}
(*p)[5]=a;
则*(*(p+1)+1)代表第二行的第二个元素7。
指针数组是由若干指针组成的数组,它是一组指针,而不是一个指针。它和普通的数组一模一样,只是它存放的是指针,也就是地址,而不是元素的值。
如:
int a=2,b=3,c=5;
int*p[3];
p[0]=&a;
p[1]=&b;
p[2]=&c;
则*p[1],*p[2]分别代表3和5。
有什么问题请留言。
相似回答