C语言——二维数组

本文介绍了二维数组在C语言中的概念,包括其定义、如何声明和初始化,以及数组下标、元素输入输出和内存存储方式。通过实例展示了如何使用二维数组以及其在内存中的连续存储特性。
摘要由CSDN通过智能技术生成

一、二维数组的概念

 二维数组是一种常见的数据结构,在C语言中用于存储和操作二维数据。它可以看作是由多个一维数组组成的数据结构,每一个一维数组都是二维数组中的一行。

与一维数组不同的是,二维数组需要两个索引来访问数组中的元素。第一个索引代表行号,第二个索引代表列号。例如,对于一个包含3行4列的二维数组,第二个元素的索引是[0][1],最后一个元素的索引是[2][3]。

可以把二维数组想象成一个表格,其中的每一个单元都包含一个特定的数据。在C语言中,可以用二维数组存储各种类型的数据,例如整型、浮点型、字符型。

二、二维数组的声明和初始化

声明

声明二位数组的方法和一维数组的方法相似,在创建二维数组时,要说明数组的数据类型、数组名、数组大小。

举例:创建一个三行四列的二维数组,数据类型为整型。

int arr[3][4]
//int为数组的数据类型
//arr为数组的名称
//[3]表示该数组有三行
//[4]表示该数组每一行有四个元素

初始化

2.1 不完全初始化

//部分初始化
int arr_1[3][5]={0,1};//对数组arr_1的第一个元素和第二个元素赋值
float arr_2[6][6]={6.6,8.8};//对数组arr_2的第一个元素和第二个元素赋值

2.2 完全初始化

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

2.3 按照行进行初始化

int arr_4[3][3]={{1,2,3},{4,5,6},{7,8,9}};

2.4 声明数组时省略行

在对二维数组进行声明时,省略了行号,但不能省略列号,此时一定要给出初始化表达式,编译器可以从初始化结果推断出有多少行。

int arr_5[][3]={{1,2},{3,4},{5,6}};
int arr_6[][5]={1,2,3,4,5,6};

三、二维数组的使用

3.1 数组下标

举例:通过元素下标对数组元素进行访问

int arr[3][3]={{1,2,3},{4,5,6},{7,8,9}};
printf("%d",arr[2][1]);//打印数组中的第三行第二个元素

3.2 数组元素的输入输出

#include<stdio.h>

int main()
{
	int arr[2][3];
	int i;//代表行号
	int j;//代表列号

	//输入
	//通过循环,遍历数组中的每一个元素,逐一进行赋值
	for (i = 0; i < 2; i++)//遍历行号
	{
		for (j = 0; j < 3; j++)//遍历列号
		{
			scanf("%d", &arr[i][j]);
		}
	}

	//输出
	//通过循环,遍历数组中的每一个元素,逐一对每个元素的数据进行读取
	for (i = 0; i < 2; i++)//遍历行号
	{
		for (j = 0; j < 3; j++)//遍历列号
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}

	return 0;
}

3.3 二维数组在内存中的存储 

#include<stdio.h>

int main()
{
	int arr[2][3] = { {1,2,3},{4,5,6} };
	int i;//代表行号
	int j;//代表列号

	//输出
	//通过循环,遍历数组中的每一个元素,逐一对每个元素的数据进行读取
	for (i = 0; i < 2; i++)//遍历行号
	{
		for (j = 0; j < 3; j++)//遍历列号
		{
			printf("arr[%d][%d]=%d",i,j, &arr[i][j]);//打印出每个元素的存储地址
			printf("\n");
		}
		
	}

	return 0;
}

从以上代码的结果可以看出,二维数组中的元素是连续存贮的。

 

  • 12
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值