美文网首页
常用数据类型(二)

常用数据类型(二)

作者: qianranow | 来源:发表于2018-03-13 17:58 被阅读43次

    二维数组


    • 概念:一个 一维数组每个元素 又是 一维数组
    • 定义
      // 元素类型 数组名 [一维数组个数][一维数组元素个数]
      
      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

    相关文章

      网友评论

          本文标题:常用数据类型(二)

          本文链接:https://www.haomeiwen.com/subject/dsttqftx.html