数组指针与指针数组

目录

    • 记忆技巧
    • 代码演示

记忆技巧

想要记忆这两个概念其实很简单

  • 所谓数组指针,就是存数组的指针
  • 所谓指针数组,就是存指针的数组

代码演示

  • 数组指针
    int arr[] = {1, 2, 3};
    int* parr = arr;
    

    其中parr存的就是arr这个数组的指针

  • 指针数组
    int arr[] = {1, 2, 3};
    
    // 动态申请的指针数组
    int** pp = new int* [3]; // pp是一个包含3个指针的数组
    
    // 将arr数组中的元素的地址赋值给pp数组中的指针
    for (int i = 0; i < 3; i++)
        pp[i] = &arr[i];
    
    // 非动态申请的指针数组
    int* p[3]; // p是一个包含3个指针的数组
    
    // 将arr数组中的元素的地址赋值给p数组中的指针
    for (int i = 0; i < 3; i++)
        p[i] = &arr[i];
    

    ppp都是指向指针数组的数组指针(细品)
    而动态申请是需要使用指针的,所以前者有两个*

你可能感兴趣的:(知识补充,c++)