C语言----二维数组

二维数组

就是数组中包含多个数组

定义方法1:

int arr m n = 其中的m就是这个二维数组里有多少个一维数组(二维数组的长度)

{ 其中的n就是这个二维数组中的一维数组有多少个元素(一维数组的长度)

{1,2,3,4....},

{1,2,3,4....},

{1,2,3,4....},

};

定义方法2:

int arr15 = {1,2,3,4,5};

int arr25 = {1,2,3,4,5};

int* arr2 = {arr1,arr2}

使用索引遍历二维数组(第一种定义格式)
弊端:

要求内部数组长度一致

代码案例
复制代码
#include<stdio.h>
int main()
{
    int arr[3][5] = 
    {
        {1,2,3,4,5},
        {6,7,8,9,10},
        {11,12,13,14,15}
    };
    int i,j;
    for(j=0;j<3;j++)        //外循环:每个一维数组都遍历
    {
        for(i=0;i<5;i++)        //内循环:一维数组中的每个元素都遍历
        {
            printf("%d ",arr[j][i]);        //arr[j][i]的含义就是arr中第j个数组中的第i个元素
        }
        printf("\n");
    }
    return 0;
}
使用索引遍历二维数组(第二种定义格式)
代码案例
复制代码
#include<stdio.h>
int main()
{
    //定义各个一维数组
    int arr1[] = {1,2,3};
    int arr2[] = {4,5,6,7};
    int arr3[] = {8,9,10};
    //计算各个一维数组的长度
    //重点:要在将各个一维数组存入二维数组前计算,
    //因为数组参与计算的时候,会退化为第一个元素的指针,那时计算的长度就是第一个元素的长度
    int len1 = sizeof(arr1) / sizeof(int);
    int len2 = sizeof(arr2) / sizeof(int);
    int len3 = sizeof(arr3) / sizeof(int);
    //将各个一维数组长度存入数组,方便调用
    int lenArr[] = {len1,len2,len3};
    //定义二维数组,将上面定义的一维数组存入
    int* arr[3] = {arr1,arr2,arr3};
    int i,j;
    for(j=0;j<3;j++)
    {
        for(i=0;i<lenArr[j];i++)
        {
            printf("%d ",arr[j][i]);
        }
        printf("\n");
    }
    return 0;
}
相关推荐
xiaoye-duck3 分钟前
《C++ 项目:手写大模型接入 SDK》Provider分析与实现
开发语言·c++·语言模型
Tsuki_tl5 分钟前
【优选算法 — 双指针】经典例题题解+算法总结
算法·蓝桥杯·力扣·刷题·双指针·1024程序员节·优选算法
qq_408606867 分钟前
C_Primer_Plus_chapter17_exercise3
c语言·1024程序员节
会编程的小孩29 分钟前
qt_day1
c++
拓恒技术1 小时前
内河航道无人机智能巡检系统与算法应用
人工智能·深度学习·算法·无人机·智慧城市
如何原谅奋力过但无声1 小时前
【LeetCode hot100】代码随想录未cover部分
数据结构·算法·leetcode
INGNIGHT1 小时前
377.组合总和 Ⅳ(背包)
c++·算法·1024程序员节
H.莓飛1 小时前
【数据结构】排序_OJ题(二):划分与选择
linux·服务器·c语言·开发语言·数据结构·visual studio
拓恒技术1 小时前
城市管理中的无人机AI识别算法:架构、场景与落地
人工智能·算法·视觉检测·无人机·1024程序员节
凉茶钱2 小时前
stack、queue、priority_queue、容器适配器完整梳理
开发语言·c++·queue·1024程序员节·stack