数组指针,指针数组区别!要详细,超详细!我区分了好多次了,还是不清楚啊
的有关信息介绍如下:1、在c和c++中数组的指针就是数组的起始地址(也就第一个元素的地址),而且标准文档规定数组名代表数组的地址(这是敬差地址数值层面的数组表示)。2、指针数组是指一个数组中的每个元素都是一个指针,也就是多维数组。说白了,数组指针就是指指向数组首地址的指针,也可以说是数组的首地址。而指针数组,按字面意思,指针的数组,存放指针的数组,也就是数组中每一个元素都是指针,即多维数组。 总而言之,数组指亮首皮针是指一个指针,而指针数组是一个多维数组。 例子:int a[3][4];int (*p)[4];int *p[3]第一个,是指针数组,a[3][4]可以看成是存放三个指针的数组a[3],且每个指针指向一个存放4个整型数据的数组。第二个,int (*p)[4];这个和第一个例子的表达的意思一模一样,我们可以这样赋值:int (*p)[4]=a;其中p表示指向存放4个整型数据数组的指针,不过它没有给出指针的具体定义,所以我们还可以用这样赋值来理解:若int b[n][4];(n为int数据)则int (*p)[4]=b;(p也是指向一个存放4个整型数的数组,但这里有n个p指针!)。第三个,int *p[3];它定义了一组存放三个指针的整型数组,我们可以近似地理解:如int *q;(定义了一个q指针);int *p[3];(定义了一芹橡组指针)。(这一组指针的定义等同于这样三个指针的定义:int *x,*y,*z。)