黑马程序员技术交流社区
标题:
C 语言学习笔记之二维数组存储
[打印本页]
作者:
chunhuayun
时间:
2015-9-25 15:08
标题:
C 语言学习笔记之二维数组存储
09-03 二维数组存储
1.概念
二维数组在概念上是二维的,即是说是其下标在两个方向上变化,下标变量在数组中的位置也处于一个平面之中,而不是像一维数组只是一个向量。但是,实际的硬件存储器确实连续编址的。也就是说存储器单元式按一维现行排列的。如何在一维存储器中存放二维数组,有两种放啊是:一种是按行排列,即放完一行之后顺次放入第二行;另一种是按列排列,即放完一列之后再数次放第二列。
2.列数 = 行的总字节数 / 给个元素占用的字节数
行数 = 总字节数 / 每一行占用的字节数
int a[][4] = {{1,2,3,5},{4,5,6,5},{7,8,9,5}};
//行数 = 总字节数/每行占用字节数
int row = sizeof(a)/sizeof(a[0]);
//列数 = 每行占用字节数/每个元素占用字节数
int column = sizeof(a[0])/sizeof(int);
printf("rows : %d\n", row);
printf("column : %d\n", column);
复制代码
打印结果:
rows : 3
column : 4
3.求每门课的平均分
//求平均成绩
int scores[][3] = {{56,78,44},{56,89,43},{33,65,88},{33,66,22}};
int total = 0;
for (int j = 0; j < 3; j++) {
for (int i = 0; i < 4; i++) {
total += scores[i][0];
}
printf("class %d 's avg score: %.2f\n",j ,total/3.0);
}
复制代码
4.二维数组作为函数参数注意事项
a.类型和长度要一致
b.二维数组作为形参,可以不写第一维长度
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2