黑马程序员——c语言基础:二维数组

1.二维数组的基本概念和使用


 二维数组:可以看做是一个特殊的一维数组,这个数组的每个元素又是一个一维数组。


 二维数组的定义:

    类型说明符 数组名[常量表达式1][常量表达式2]

    其中常量表达式1代表第一维下标长度,常量表达式2表示第二维下标长度。

    例如:int a[3][4]; // 说明了一个三行四列的数组,数组名为a,其下标变量的类型为整形。该数组的下标变量共有3*4个。


 二维数组的初始化:

 1.定义的同时初始化

    1.1完全初始化

        1.1.1将二维数组当做元素类型是数组的特殊一维数组:int a[2][3] = { {1,2,3}, {4,5,6}};

        1.1.2连续赋值:int a[2][3] = {1,2,3,4,5,6};

        1.1.3可以省略第一维:int a[][3] = { {1,2,3}, {4,5,6}}; int a[][3] = {1,2,3,4,5,6};

 

    1.2部分初始化

        int a[3][4] = {1};

        int a[3][4] = { {1}, {2}, {3}}; // 这种写法第一维长度可以省略

        int a[3][4] = {1,2,3,4,5};

 2.先定义,后初始化

    int a[3][4];

    a[0][0] = 1;


 二维数组的遍历:通过下标访问二维数组中的每一个元素。

 

 二维数组的存储方式:

  1.计算机会给二维数组分配一块连续的存储空间。

2.数组名代表数组的首地址,从首地址位置依次放入第1行、第二行……

3.每一行的存储方式:从行首地址开始,依次存储该行的第1个元素、第2个元素、第3个元素……

  4.每个元素占用相同的字节数(取决于数组类型)

  5.数组中元素之间的地址是连续的


实例:定义初始化一个二维数组,并遍历输出数组内容。

#include <stdio.h>


int main(int argc, const char * argv[]) {

    // 定义并初始化一个二维数组

    int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12};

    

    // 用双重for循环打印出二维数组中每一个元素

    for (int i = 0; i <3; i ++) { // 第一维有3个元素

        for (int j = 0; j < 4; j ++) { // 第二维有4个元素

            printf("%d\t", a[i][j]);

        }

        // 换行

        printf("\n");

    }

    

    return 0;

}



2.二维数组的应用实例


1)一个学习小组有5个人,每个人有三门课的考试成绩。求每门课程的平均分和三门课的平均分。

#include <stdio.h>


int main(int argc, const char * argv[]) {

    

    // 定义并初始化数组

    int score[5][3] = {

        { 80,75,92},

        { 61,65,71},

        { 59,63,70},

        { 85,87,90},

        { 76,77,85}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值