常用数据类型(二)

二维数组


  • 概念:一个 一维数组 的 每个元素 又是 一维数组
  • 定义
    // 元素类型 数组名 [一维数组个数][一维数组元素个数]
    
    1. 先定义再完全初始化
       char names[2][3];
       names[0][0] = 'W';
       names[0][1] = 'X';
       names[0][2] = 'X';
       names[1][0] = 'Q';
       names[1][1] = 'T';
       names[1][2] = 'T';
    
    2. 定义同时不完全初始化
       char names[2][3] = {
         {'W', 'X'}
       };
    
    3. 定义同时完全初始化
       char names[2][3] = {
         {'W', 'X', 'X'},
         {'Q', 'T', 'T'}
       }; 
    
    注意:
    (1) 定义同时初始化,可以省略 {}
        char names[2][3] = {
          'W', 'X', 'X',
          'Q', 'T', 'T',
        };
    
    (2) 定义同时初始化,可以省略 一维数组个数
        char names[][3] = {
          'W', 'X', 'X',
          'Q', 'T', 'T',
          'H', 'Y'
        };
    
  • 操作
    • 获取单个元素
      // items[index][index]:通过 下标 访问元素
      char names[2][3] = {
        {'W', 'X', 'X'},
        {'Q', 'T', 'T'}
      };
      
    • 遍历
      int scores[3][5] = {
      {66, 88, 99, 100, 120},
      {22, 33, 44, 55, 66},
      {11, 22, 33, 44, 55}
      };
      for(int i = 0; i < 3; i++) {
        for(int j = 0; j < 5; j++) {
            printf("scores[%i][%i] = %i\n", i, j, scores[i][j]);
        }
      };
      
  • 内存分配
    • 地址:charValues == &charValues == &charValues[0][0]
    • 存储细节
      1. 系统给二维数组分配 一块连续 的 存储空间
      2. 数组名 代表数组的 首地址,从首地址位置,依次 存入每一行
      3. 每一行存储方式,还是从 行首地址 位置,依次 存入元素
      4. 每个元素占用 相同 的 字节数
      5. 数组中元素之间的地址是 连续的
      
      内存分配.png

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容