【C语言】二维数组

举报
人才程序员 发表于 2023/11/30 17:49:28 2023/11/30
【摘要】 @TOC 前言本节课讲的是二维数组,实际上和一维数组差不多提示:以下是本篇文章正文内容,下面案例可供参考 一、声明与对比声明:int a[5];//一维数组int a[3][4];//二维数组对比:一维数组:元素是数据类型的的数组 二维数组:元素是一维数组的数组,本质还是一维数组c 是 3 个元素的一维数组,每个元素是 4 元素的一维数组图解:二维数组一般理解为行列,对初学者比较友好,int...

@TOC


前言

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


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

一、声明与对比

声明:

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]; 四维数组
原理跟二维数组一样,平时基本用不到。

总结

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。