zoukankan      html  css  js  c++  java
  • 05_数组(二)

    二维数组

    一 定义和初始化

        // 元素类型 数组名[行数][列数];
    // 定义了一个元素类型为 int 类型,数组名为 arr2 ,3行4列的二维数组
    int arr2[3][4];

    // 初始化
    // 按行初始化
    int arr3[3][4] = {
    {0,1,2,3},
    {10,11,12,13},
    {20,21,22,23}
    };
    // 某些元素不给初值
    int arr4[3][4] = {
    { 0, 1, 2},
    { 10, 11 },
    { 20 }
    };
    // 连续初始化
    int arr5[3][4] = { 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23 };
    // 某些元素不给初值
    int arr6[3][4] = { 0, 1, 2, 10, 11, 20 };

    // 一维数组在定义的同时初始化可以不写数组长度
    // 二位数组在定义的同时初始化可以不写行数 但是列数一定要写
    // 此时行数 根据初始项的数量(N)来确定 N/列数 12/4 == 3行
    int arr7[][4] = { 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23 };
    // 此时行数 根据初始项的数量(N)来确定 N/列数 10/4 == 3行
    // 此时 因为是3行 所以最后两个元素默认值为0
    int arr8[][4] = { 0, 1, 2, 3, 10, 11, 12, 13, 20, 21 };

    int arr9[][4] = {
    { 0, 1, 2, 3 },
    { 10, 11, 12, 13 },
    { 20, 21, 22, 23 }
    };
    int arr10[][4] = {
    { 0, 1, 2 },
    { 10, 11 },
    { 20 }
    };

    // 字符数组
    char ch1[][10] = {
    "gudlk",
    "giua",
    "ghjjkg"
    };

    二 内存

    1 二维数组的内存也是连续的
    2 总内存 == 单个元素所占内存大小 * 元素个数
    3 二维数组也是数组
    4 二维数组组的每一行可以看作一个一维数组

    三 访问

    一) 下标访问

    1 数组下标从0开始
        int arr3[3][4] = {
    {0,1,2,3},
    {10,11,12,13},
    {20,21,22,23}
    };
    cout << arr3[1][3] << endl; // 13

    二) 指针访问

      ps:见后续博文

    四 赋值

        // 按行初始化
    int arr3[3][4] = {
    {0,1,2,3},
    {10,11,12,13},
    {20,21,22,23}
    };
    cout << arr3[1][3] << endl; //13
    arr3[2][3] = 56; //给单个元素赋值
    cout << arr3[2][3] << endl; //56

    int arr2[3][4];
    // 给所有元素赋值
    // 通过循环遍历到每一个元素逐个赋值
    for (int i = 0; i < 3; i++)//行
    {
    for (int j = 0; j < 4; j++)//列
    {
    arr2[i][j] = i * 10 + j;
    }
    }
    // 打印数组
    for (int i = 0; i < 3; i++)//行
    {
    for (int j = 0; j < 4; j++)//列
    {
    cout << arr2[i][j] << " ";
    }
    cout << endl;//打印完一行后换行
    }

     

    五 应用(推箱子)

      ps:实例见后续博文

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    最小路径和
    S2 深入.NET和C#编程 机试测试错题积累
    S2 深入.NET和C#编程 笔试测试错题积累
    影院项目的内容信息
    抽象类和抽象的方法注意事项
    六种设计原则
    体检套餐的笔记
    C#图解 类和继承
    深入类的方法
    S2 深入.NET和C#编程 三:使用集合组织相关数据
  • 原文地址:https://www.cnblogs.com/ZhenXin0101/p/13405916.html
Copyright © 2011-2022 走看看