C语言学习笔记|10~二维数组

本文介绍了二维数组在C语言中的概念,包括其定义、初始化方法,以及如何通过行列索引访问元素。还讨论了如何在打印字符时避免显示ASCII值,通过检查ASCII范围实现字符的正确输出。
摘要由CSDN通过智能技术生成

清华计算机技术学院 |48~51节

1️⃣二维数组的概念

      1. 定义:二维数组是一种数据结构,一种特殊的数组,可以被视为一个“数组的数组”。在二维数组中,数据以行和列的形式组织,类似于数学中的矩阵或一个表格。

      2. 必须保持所有元素数据类型一致。

2️⃣定义一个二维数组(初始化和赋值)

     

         二维数组在内存中也是连续一排的,并不是一个矩阵的结构,只是表现出来是矩阵的。因此初始化时可以省略花括号,像一维数组那样初始化。

3️⃣访问二维数组元素

      可以通过行索引和列索引来访问二维数组中的元素。例如,arr[0][1] 访问的是数组中第一行第二列的元素。

4️⃣二维数组的内存存储

5️⃣练习

💡打印一个二维数组

#include <stdio.h>

int main() 
{
    int arry[3][4] = {1,2,3,4,5,6,7,8,'a','b','c','d'};

    for(int a = 0;a < 3;a++)
    {
        for(int b = 0;b<4;b++)
        {
            printf("arry[%d][%d] = %d ",a,b,arry[a][b]);
        }
        printf("\n");
    }

    return 0;
}
//由于数组 arry 被定义为一个整型数组(int arry[3][4]),
//当在其中存储字符时(如 'a', 'b', 'c', 'd'),
//这些字符实际上是以它们的ASCII值存储的
//因此('a', 'b', 'c', 'd')会被自动转换成它们的ASCII值。


//输出
//arry[0][0] = 1 arry[0][1] = 2 arry[0][2] = 3 arry[0][3] = 4 
//arry[1][0] = 5 arry[1][1] = 6 arry[1][2] = 7 arry[1][3] = 8 
//arry[2][0] = 97 arry[2][1] = 98 arry[2][2] = 99 arry[2][3] = 100 

如果想打印出a,b,c,d而不是他们的ASCII值该怎么做:需要在 printf 函数中检查当前元素是否是字符。由于ASCII值的范围,您可以检查元素是否在字符型数据的ASCII范围内。字符的ASCII值范围通常是从32(空格)到126(波浪号)。

如下:

#include <stdio.h>

int main() 
{
    int arry[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 'a', 'b', 'c', 'd'};

    for(int a = 0; a < 3; a++)
    {
        for(int b = 0; b < 4; b++)
        {
            // 检查元素是否是字符范围内的ASCII值
            if (arry[a][b] >= 32 && arry[a][b] <= 126) {
                printf("arry[%d][%d] = %c ", a, b, arry[a][b]);
            } else {
                printf("arry[%d][%d] = %d ", a, b, arry[a][b]);
            }
        }
        printf("\n");
    }

    return 0;
}


//printf 会检查每个元素。
//如果元素的值在32到126之间,它将使用 %c 格式说明符将其打印为字符。
//否则,它将使用 %d 将其打印为整数。
//这样,字符 'a', 'b', 'c', 'd' 将作为字符而非它们的ASCII值被打印。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值