zoukankan      html  css  js  c++  java
  • 08_二维数组与指针、数组指针、指针数组

    二维数组与指针

    1 二维数组可以看作是多个一维数组

    2 数组名就是数组的首地址

        int arr[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
    int* parr00 = &arr[0][0];
    int* parr0 = arr[0];

    cout<<arr[1][2] << endl;
    cout << *(parr00 + 6) << endl;
    cout << *(parr0+6) << endl;

    数组指针

    本质上还是一个指针,指向数组的指针

        int a[4] = { 1, 2, 3, 4 };
    int(*p)[4] = &a;
    // 定义了一个指针p,p是一个数组指针,指向元素类型为int,长度为4的一维数组

    int arr[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
    int(*parr)[3][4] = &arr;
    //
        int a[4] = { 1, 2, 3, 4 };
    int(*p)[4] = &a;
    cout << *p[1] << endl; // ??
    cout<< (*p)[1] << endl; // 2
    // (*p) : a
        int arr[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
    int(*parr)[3][4] = &arr;
    cout << " " << (*parr)[1][2] << endl;
    cout << " " << *(*((*parr) + 1) + 2) << endl;

     

    指针数组

    本质上还是一个数组,存储指针的数组

     

     

    综合练习

    #include <iostream>
    using namespace std;
    typedef int I;
    typedef int(*B)[4];
    int main()
    {
    I a[4] = { 1, 2, 3, 4 };
    int b[4] = { 5,6,7,8 };
    int c[4] = { 9,10,11,12 };
    int(*pa)[4] = &a;
    int(*pb)[4] = &b;
    int(*pc)[4] = &c;
    // 定义一个数组,元素类型为数组指针
    B parr[3] = { pa, pb, pc };
    cout << parr[1][0][3] << endl; // 8
    B(*pp)[3] = &parr;
    cout << (*pp)[1][0][3] << endl; // 8
    cout << pp[0][1][0][3] << endl; // 8
       
    return 0;
    }

     

     

     

     

     

     

     

  • 相关阅读:
    第十八章 文件传输协议
    第十七章 DNS原理
    第三十六章 Linux常用性能检测的指令
    学习日报
    连接数据库综合实例
    异常处理动手动脑
    Css实例之信息提交
    JDBC编程
    将文本文件写入数据库并使用数据库读取
    Java学习
  • 原文地址:https://www.cnblogs.com/ZhenXin0101/p/13524858.html
Copyright © 2011-2022 走看看