C语言之《数组》

数组

数组的概念

数组是一组相同类型元素的集合。
要理解相同类型元素指的是什么,我们就要先了解,数组和变量一样也是有类型的。
比如:

int arr[3] = { 1,2,3};

上述是一组整型类型的数组,而我们所说的数组是一组相同类型元素的集合,其中元素指的是存放在arr数组中的“值”,一组相同类型则是指其中的元素也是整型类型的。

数组的基本语法

在上面我们举了一个例子:

int arr[3] = { 1,2,3 };

int 指的是数组中存放数据的类型,可以是:char、short、int、float等等;
arr 指的是数组名,数组名可以根据实际情况,起的有意义就好;
[] 中的常量值是用来规定数组大小的,根据实际需要规定;
{} 中存放的则是数组中的元素。

一维数组

数组也分一维数组、二维数组和多维数组,如上述举的例子则是一维数组。
比如:想存放某个班级的全班的数学成绩,则可以创建一个数组。

int arr[40];

当然数组的大小可以根据实际情况去创建,不同的情况也可以创建不同类型的数组,如下:

int arr1[40];
char arr2[10];

一维数组的使用

一维数组的创建和初始化

创建一个数组,就像创建一个变量一样,需要给它一个初始值,这就成为初始化。

数组的初始化分为:完全初始化不完全初始化错误的初始化不初始化

初始化使用大括号,将数组放入大括号内。

//完全初始化
int arr1[3] = { 1, 2, 3};
//不完全初始化
int arr2[3] = { 1, 2};
//错误的初始化,超出了数组的大小
int arr3[3] = { 1, 2, 3, 4};
不完全初始化的结果

不完全初始化中,剩余的值编译器默认为0。
在这里插入图片描述
在这里插入图片描述

错误初始化的结果

在初始化中,初始化的初始值不能超过规定的数组大小,否则会报错。
在这里插入图片描述
在这里插入图片描述

不初始化

和变量一样,在创建的时候最好初始化一下,数组也是一样,而数组在创建的时候不初始化的话,数组中放的就是随机值。
在这里插入图片描述

在这里插入图片描述
这里因为编译器的原因,没有完全显示出效果,但也可以看出初始化的结果。

数组下标

在C语言中数组是有下标的,下标是从0开始,假设数组中有n个元素,最后一个元素的下标是n-1,下标如同于小区的门牌号,通过下标就可以找到元素。

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

在这里插入图片描述
C语言中对于数组元素访问提供了一个操作符[ ],这个操作符叫:下标引用操作符。

有了下标引用操作符就可以访问数组的元素了,比如访问下标为7的元素,就可以使用arr[7]来访问下标7的元素。

再比如我们去访问下标为8的元素,如下:
在这里插入图片描述在这里插入图片描述
ps: 下标引用操作符中是填写的是下标,不是元素。如果你对8和9的结果感到疑惑的话,那么就是你理解成下标引用操作符中填写的是元素,而不是下标。如果还有疑惑,关于下标的介绍中还有一张图片,下标8对应的就是元素7,下标9对应的是元素8。

数组元素的打印
#include <stdio.h>
int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

二维数组

二维数组的概念

前面学习的数组叫一维数组,数组的元素都是内置的,如果我们把一维数组当做是数组的元素,这就是二维数组。二维数组的上面是三维数组,甚至多维数组,但是二维数组是较为常用的。

int arr[3][5];

int —数组类型;
arr—是数组名,可以按照自己的想法创建;
3—代表这个数组有3行;
5—代表中国数组一行里有5个元素。

二维数组的创建和初始化

在创建变量和数组的时候给一个初始值,就是初始化。
二维数组的初始化是怎么呢?和一维数组一样,也是拿大括号初始化。

int arr1[3][5] = { 1,2 };
int arr2[3][5] = { 0 };

初始化也分为完全初始化不完全初始化

完全初始化
int arr1[3][5] = { 1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7 };

在这里插入图片描述

不完全初始化
int arr2[3][5] = { {1,2}, {3,4}, {5,6} };

在这里插入图片描述

二维数组的使用

二维数组的下标

二维数组和一维数组差不多,但二维数组多了行和列,所以在使用上会有所差异。
二维数组下标的访问,只要确定行和列就可以找到相应的数组元素。

int main()
{
	int arr[3][5] = { 1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7 };
	printf("%d\n", arr[1][3]); 
	return 0;
}

在这里插入图片描述
使用下标访问数组元素,第1行第3个,锁定的就是5。

在二维数组中,可以省略行,但不能省略列。
简单来说,省略的行,会根据初始化是数组的数量来创建数组的行数。
从下面的代码示例,可以看出最终由多少行。

int main()
{
	int arr[][5] = { 1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7 };
	
	return 0;
}

在以上的代码示例和讲解中,我们可以看出,数组在内存中是连续存放的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值