A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

09-03 二维数组存储
1.概念
        二维数组在概念上是二维的,即是说是其下标在两个方向上变化,下标变量在数组中的位置也处于一个平面之中,而不是像一维数组只是一个向量。但是,实际的硬件存储器确实连续编址的。也就是说存储器单元式按一维现行排列的。如何在一维存储器中存放二维数组,有两种放啊是:一种是按行排列,即放完一行之后顺次放入第二行;另一种是按列排列,即放完一列之后再数次放第二列。

2.列数 = 行的总字节数 / 给个元素占用的字节数
  行数 = 总字节数 / 每一行占用的字节数
  1. int a[][4] = {{1,2,3,5},{4,5,6,5},{7,8,9,5}};
  2.    
  3.             //行数 = 总字节数/每行占用字节数
  4.             int row = sizeof(a)/sizeof(a[0]);
  5.             //列数 = 每行占用字节数/每个元素占用字节数
  6.             int column = sizeof(a[0])/sizeof(int);
  7.             
  8.             printf("rows : %d\n", row);
  9.             printf("column : %d\n", column);
复制代码

        打印结果:
        rows : 3
        column : 4
3.求每门课的平均分
  1.    //求平均成绩
  2.     int scores[][3] = {{56,78,44},{56,89,43},{33,65,88},{33,66,22}};
  3.     int total = 0;
  4.     for (int j = 0; j < 3; j++) {
  5.         for (int i = 0; i < 4; i++) {
  6.             total += scores[i][0];
  7.         }
  8.         printf("class %d 's avg score: %.2f\n",j ,total/3.0);
  9.     }
复制代码

4.二维数组作为函数参数注意事项

        a.类型和长度要一致
        b.二维数组作为形参,可以不写第一维长度  

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马