首页 > 其他分享 >C语言二维数组

C语言二维数组

时间:2024-12-29 15:57:31浏览次数:7  
标签:初始化 matrix int 元素 C语言 二维 数组

在C语言中,二维数组是一种常用的数据结构,用于存储和处理具有行和列结构的数据。以下是关于C语言二维数组的详细介绍:

 

1. 二维数组的定义

 

二维数组本质上是数组的数组。其定义语法如下:

 

c

数据类型 数组名[行数][列数];

 

 

例如,定义一个3行4列的整数二维数组:

 

c

int matrix[3][4];

 

 

2. 二维数组的初始化

 

- 全部初始化:

c

int matrix[3][4] = {

    {1, 2, 3, 4},

    {5, 6, 7, 8},

    {9, 10, 11, 12}

};

 

- 部分初始化:只初始化部分元素,其余元素自动初始化为0。

c

int matrix[3][4] = {

    {1, 2},

    {5}

};

 

 

上述代码中, matrix[0][0] = 1 , matrix[0][1] = 2 , matrix[1][0] = 5 ,其余元素均为0。

 

3. 访问二维数组元素

 

可以通过双下标来访问二维数组中的元素,语法为:

 

c

数组名[行下标][列下标]

 

 

例如,访问 matrix 数组中第2行第3列的元素(注意下标从0开始):

 

c

int value = matrix[1][2];

 

 

4. 遍历二维数组

 

通常使用嵌套的 for 循环来遍历二维数组。

 

c

#include <stdio.h>

 

int main() {

    int matrix[3][4] = {

        {1, 2, 3, 4},

        {5, 6, 7, 8},

        {9, 10, 11, 12}

    };

 

    for (int i = 0; i < 3; i++) {

        for (int j = 0; j < 4; j++) {

            printf("%d ", matrix[i][j]);

        }

        printf("\n");

    }

 

    return 0;

}

 

 

上述代码中,外层 for 循环控制行,内层 for 循环控制列,从而遍历整个二维数组并输出每个元素。

 

5. 二维数组作为函数参数

 

当二维数组作为函数参数传递时,需要在函数定义中指定数组的列数。例如:

 

c

#include <stdio.h>

 

// 函数声明

void printMatrix(int arr[][4], int rows);

 

int main() {

    int matrix[3][4] = {

        {1, 2, 3, 4},

        {5, 6, 7, 8},

        {9, 10, 11, 12}

    };

 

    printMatrix(matrix, 3);

 

    return 0;

}

 

// 函数定义

void printMatrix(int arr[][4], int rows) {

    for (int i = 0; i < rows; i++) {

        for (int j = 0; j < 4; j++) {

            printf("%d ", arr[i][j]);

        }

        printf("\n");

    }

}

 

 

在上述代码中, printMatrix 函数接受一个二维数组和数组的行数作为参数,在函数定义中指定了数组的列数为4。

 

通过以上内容,你应该对C语言二维数组有了基本的了解。二维数组在许多实际应用中都非常有用,如矩阵运算、图像处理等。

标签:初始化,matrix,int,元素,C语言,二维,数组
From: https://blog.csdn.net/2301_81152393/article/details/144806133

相关文章

  • C语言函数的参数
    在C语言中,函数参数是用于向函数传递数据的重要元素。 函数参数分为形式参数(形参)和实际参数(实参)。 形式参数 -定义在函数声明或定义中的参数。例如在函数 intadd(inta,intb) 中, a 和 b 就是形参。它们像是函数内部的变量,在函数被调用时才会被分配内存空间,用......
  • leetcode1707 与数组中元素的最大异或值
    给定数组nums[n]和查询数组queries[m],其中queries[i]=[xi,mi],第i个查询表示nums[n]中不超过mi的所有元素与xi异或的最大值。1<=n,m<=1E5;0<=nums[i],xi,mi<=1E9分析:01trie+离线。将询问按mi从小到大排序,将nums[n]从小到大排序,每次处理询问前,把不超过mi的数都加入trie,回答询问。......
  • C语言学习笔记(基础语法篇)
    C语言学习笔记(基础语法篇)序言首先事先说明一下,这是我从各处整理的,当初刚接触CS,甚至连标注意识都没有,再次感谢写这些文章的人.当然这里不是说全部都是别人写的了,也有一点我自己的思考.首先是几个注意点:结构化,模块化,分而治之多写注释,多调试指针也有不同类型......
  • 合并两个有序数组
    合并两个有序数组小哆啦今天开始每日更新力扣150算法题目。题目链接88.合并两个有序数组-力扣(LeetCode)小哆啦的最初的做法在遥远的代码星球上,小哆啦接到了一个任务——要把两个数组nums1和nums2合并成一个有序的大数组。他灵机一动,决定先搞个大盘子(新数组arr),......
  • 银行业务队列简单模拟(C语言)
    题目:设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍——即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗......
  • PTA 约瑟夫环(C语言)
    题目:N个人围成一圈顺序编号,从1号开始按1、2、3......顺序报数,报p者退出圈外,其余的人再从1、2、3开始报数,报p的人再退出圈外,以此类推。请按退出顺序输出每个退出人的原序号。输入格式:输入只有一行,包括一个整数N(1<=N<=3000)及一个整数p(1<=p<=5000)。输出格式:按退出顺序......
  • 数组与字符串 - 一维数组、二维数组、字符串处理
    引言数组和字符串是编程中非常常见的数据结构,用于存储和操作一组相同类型的数据。C++提供了丰富的语法和库函数来处理数组和字符串,使得这些操作既简单又高效。本文将详细介绍C++中一维数组、二维数组和字符串的使用方法,并通过示例帮助读者更好地理解。1.一维数组一维数......
  • Go基础之数组,切片,Map
    目录1数组1.1简介1.1.1声明数组1.1.2初始化数组1.3访问数组元素1.4多维数组1.4.1二维数组1.4.2初始化二维数组1.4.3访问二维数组1.5数组与函数2切片2.1简介2.1.1定义切片2.1.2切片初始化2.1.3len()和cap()函数2.1.4空(nil)切片2.2切片操作2.2.1切片截取2.2.2......
  • 将一个浮点数或任何其他类型的值赋给 unsigned char 类型的变量时,C语言进行类型转换
    C语言中,unsignefcharTemp_Val;Temp_Val=(unsignefchar)rd_temperature();若rd_temperature()函数返回51.7,则Temp_Val等于多少?在C语言中,unsignedchar 类型通常用于存储0到255之间的无符号整数。当你将一个浮点数或任何其他类型的值赋给 unsignedchar 类型的变量时,C语言......
  • C语言.基础.运算符(二)
    目录运算符类型运算符的优先级运算符的结合性算术运算符赋值运算符关系运算符逻辑运算符 位运算符C语言内置的位运算符: 位运算符的几种特殊操作:1左移实现乘法2右移实现除法3 不使用中间变量交换两个整型变量的值4判断整数的奇偶性5位操作进行高低位交......