C++ 该怎么理解数组指针和指针数组?如题,两者总是区分不开,大侠们是怎么区分的,有什么好记的或者好理解的
C++ 该怎么理解数组指针和指针数组?
如题,两者总是区分不开,大侠们是怎么区分的,有什么好记的或者好理解的方法么
[解决办法]
这篇文章(http://see.xidian.edu.cn/cpp/html/476.html)讲得很透彻。
[解决办法]
数组指针是指一个指向数组的指针,该指针也指向数组中第一个元素, 如 int (*p)[3];
而指针数组是指数组中的元素都是指针,这些指针所指向的变量的类型是一样的,如 int *p[3],其中p[0]、p[1]、p[2]是同类型的指针。
[解决办法]
一个是(int *)a[]另一个是int (*a)[].
(int *)a[10] 这个数组里面的10个元素都是指针类型。数组成员为指针的数组,称为指针数组。
int (*a)[10]这个指针a指向的是一个具有10个元素的一位数组。a即为指向数组的指针,又称数组指针。
[解决办法]
电脑内存只是一个一维二进制字节数组及其对应的二进制地址;
人脑才将电脑内存中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是很多数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、……
