【C语言】二维数组


前言

本节课讲的是二维数组,实际上和一维数组差不多


提示:以下是本篇文章正文内容,下面案例可供参考

一、声明与对比

声明:

int a[5];//一维数组
int a[3][4];//二维数组

对比:
一维数组:元素是数据类型的的数组 二维数组:元素是一维数组的数组,本质还是一维数组

c 是 3 个元素的一维数组,每个元素是 4 元素的一维数组

图解:
在这里插入图片描述
二维数组一般理解为行列,对初学者比较友好,int a[行][列],即 3 行 4 列,如下
在这里插入图片描述

二、二维数组初始化、下标、以及遍历

初始化:

//一些常见的情况
int a[3][2] = {{3,2},{6,5},{8,7}}; //内部大括号对应每个小一维数组 3 2 6 5 8 7 
int a[3][2] = {{3},{9},{8,7}}; //初始化部分元素,其他默认 0 3 0 9 0 8 7 
int a[3][2] = {3,9,8 }; //没有内部大括号,就依次初始化各元素,其他为 0 3 9 8 0 0 0 
int a[ ][2] = {3,9,8}; //初始化时,可不写行,系统根据数据个数计算行,2 行 3 9 8 0

下标:
行下标与列下标,都是从 0 开始

int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; //行下标:0 1 2 列下标:0 1 2 3 
//元素: a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] 
//a[2][2] a[2][3]

二维数组元素个数为行*列

另一个角度 a[0]是第 1 个小数组的数组名字 a[1]是第 2 个小数组的数组名字 a[2]是第 3 个小数组的数组名字 第一个小数组的第一个元素就是 a[0][0]
图解:
在这里插入图片描述
二维数组遍历:
因为他有行和列,所以需要两个for循环,如果要按顺序输出的话:
就需要列的for循环在行的for循环里面

//遍历
	int i, j;
	int c[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 4; j++)
		{
			printf("%d ", a[i][j]);
		}
		putchar('\n');//换行
	}

三、二维数组赋值,地址,数组的大小

赋值:

a[0][0]=11;
a[0][1]=12;
a[0][2]=13;
a[0][3]=14 ;
a[1][0]=15 ;
a[1][1]=16 ;
a[1][2]=17 ;
a[1][3]=18 ;
a[2][0]=10 ;
a[2][1]=11;
a[2][2]=12 ;
a[2][3]=13;

遍历赋值也是可以的

地址:
如:a[0][0]为一个变量的名字,则&a[0][0]为一个变量的地址
如果出现&a[0]呢?其实他是第一行的第一个的元素地址
&a[1]为第二行的首元素的首地址,&a[3]为第三行的首元素的首地址

scanf_s("%d", &a[2][2]);

二维数组的大小:

//数组的大小:sizeof()
//元素个数:行*列
int a[2][3];
sizeof(a);
//2*3 = 6

四、其他更高维的数组

其他类型的数组同理
此外还有三维数组,四维数组等等多维数组,
int a[2][3][4]; 三维数组
int c[2][3][4][5]; 四维数组
原理跟二维数组一样,平时基本用不到。

总结

本节课讲的是二维数组的使用、以及更高维度的数组的简介

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人才程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值