指针数组-数组指针

指针数组-数组指针

这个问题本科我就完全不懂 最近抽时间搞明白了

简单解释

指针数组 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个不同内存块数组的 数组

猜你喜欢

转载自blog.csdn.net/qq_33329316/article/details/123664365