指针数组-数组指针
这个问题本科我就完全不懂 最近抽时间搞明白了
简单解释
指针数组 array of points 数组里面都是指针
就像二维数组里面 每个二维数组的一维向量 其实都是一个指针 指向了其中的值
指针数组 a pointer to an array 一个指向数组的指针
代码逻辑
a 中的每个元素就是 arry 中每个元素的地址
b 就是一个指向arry数组的指针 他里面保存的是arry地址也就是arry 第一位的地址
using namespace std;
int main() {
int arry[4] = {
1,2,3};
int* a[4]; //array of pointer;
int(*b)[4]; //a pointer to an array
b = &arry;
for (int i = 0; i < 4; ++i) {
a[i] = &(arry[i]);
}
cout << *(a[0])<<endl;
cout << (*b)[0]<<endl;
cout << (*b)[2]<<endl;
return 0;
}
运行结果
思考
如果这样的话 数组指针可以看成 一个二维数组
那指针数组呢?有什么用 int(*b)[4] 就代表了 一个可以指向4个不同内存块数组的 数组