zoukankan      html  css  js  c++  java
  • 【学习笔记】【C语言】二维数组

    1. 什么是二维数组

    一个数组能表示一个班人的年龄,如果想表示很多班呢?

    什么是二维数组?int ages[3][10]; 三个班,每个班10个人

    相当于3行10列

    相当于装着3个一维数组

    二维数组是一个特殊的一维数组:它的元素是一维数组。例如int a[2][3]可以看作由一维数组a[0]和一维数组a[1]组成,这两个一维数组都包含了3个int类型的元素

    clip_image001

     
    2.二维数组的定义

    二维数组定义的一般形式是:
        类型说明符 数组名[常量表达式1][常量表达式2]
    其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。例如:

    int a[3][4];

    说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即:
        a[0][0], a[0][1], a[0][2], a[0][3]
        a[1][0], a[1][1], a[1][2], a[1][3]
        a[2][0], a[2][1], a[2][2], a[2][3]
    二维数组在概念上是二维的,即是说其下标在两个方向上变化,下标变量在数组中的位置也处于一个平面之中,而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的,也就是说存储器单元是按一维线性排列的。如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。 在C语言中,二维数组是按行排列的。即,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四个元素也是依次存放。由于数组a说明为int类型,该类型占两个字节的内存空间,所以每个元素均占有两个字节。

    3.二维数组元素的引用

    二维数组的元素也称为双下标变量,其表示的形式为:
        数组名[下标][下标]
    其中下标应为整型常量或整型表达式。例如:
        a[3][4]
    表示a数组三行四列的元素。
    下标变量和数组说明在形式中有些相似,但这两者具有完全不同的含义。数组说明的方括号中给出的是某一维的长度,即可取下标的最大值;

    而数组元素中的下标是该元素在数组中的位置标识。前者只能是常量,后者可以是常量,变量或表达式。

    4.代码

     1 int main()
     2 {
     3     /*
     4     int ages[5] = {10, 11, 90, 89, 70};
     5     
     6     int ages2[3][5]= {
     7         {10, 11, 90, 89, 70},
     8         
     9         {10, 11, 90, 89, 70},
    10         
    11         {10, 11, 90, 89, 70}
    12     };*/
    13     char cs[2][3];
    14     
    15     /*
    16      1 浅蓝色
    17      2 深蓝色
    18      3 黄色
    19      4 红色
    20      -1 没有
    21      */
    22     
    23     int cubes[5][5] = {
    24         {1, -1, -1, -1, -1},
    25         {1, 1, -1, 2, -1},
    26         {4, 1, 2, 2, 2},
    27         {4, 3, 3, 3, 3},
    28         {4, 3, 3, 3, 3}
    29     };
    30     
    31     /*
    32      1 白色
    33      2 黑色
    34      -1 没有
    35      */
    36     int wuzi[6][6] = {
    37         {};
    38     };
    39     
    40     
    41     return 0;
    42 }
  • 相关阅读:
    Mysql登录错误:ERROR 1045 (28000): Plugin caching_sha2_password could not be loaded
    Docker配置LNMP环境
    Docker安装mysqli扩展和gd扩展
    Docker常用命令
    Ubuntu常用命令
    单例模式的优缺点和使用场景
    ABP 多租户数据共享
    ABP Core 后台Angular+Ng-Zorro 图片上传
    ERROR Error: If ngModel is used within a form tag, either the name attribute must be set or the form control must be defined as 'standalone' in ngModelOptions.
    AbpCore 执行迁移文件生成数据库报错 Could not find root folder of the web project!
  • 原文地址:https://www.cnblogs.com/dssf/p/4593880.html
Copyright © 2011-2022 走看看