1. 数组介绍
1.1 什么是数组?
数组就是把相同数据类型的变量组合在一起而产生的数据集合。从数组定义中可以看出数组主要有两个方面:相同数据类型的变量;
数据集合;
对于第一点比较好理解,对于第二点简单来说就是把这些相同数据类型的变量按某种关系联系起来,这也是数据结构的定义。因此数组可以说是一个存储数据的数据结构,这种关系是这些相同数据类型的变量在内存中必须是连续存储的。
1.2 数组定义
前面说数组是相同数据类型变量连续存储的集合,因此在定义数组的时候需要给定数组的数据类型以及数组存放的变量个数。因此数组的定义格式如下:
数据类型 数组名[数组大小];
这里简单介绍定义数组的三个部分:数据类型:数据类型可以是四种基本数据类型,例如int、float、double、char以及bool等;
数组名:定义数组的名称,当然数组名除了表示该数组之外,还表示该数组的首地址;
数组大小:当定义数组的时候需要指定数组中相同数据类型变量的个数,因为定义变量的时候,会再内存中开辟一块空间,当定义单个变量的话很好理解,如果定义的是数组变量的话,如果不指定相同数据类型变量的个数,就不知道开辟多少块内存空间。需要注意这里的数组大小必须是常量,绝对不能是变量,因为通常情况下C语言是不允许对数组长度进行动态定义的;
例如定义一个数组:
int a[3];
上面定义了一个整型数组,数组名为a,此时数组a中有3个整型变量,由于一个整型变量占4个字节的内存空间,那么3个整型变量占3 * 4 = 12个字节的内存空间,并且这12个字节的空间是连续的。习惯把数组中的变量称为元素。
实际上面数组的定义是一维数组的定义。当然也会有二维数组、三维数组等多维数组,其本质都是一样的。二维数组可以理解成一维数组中的元素还是一维数组,同理三维等多维数组的理解。
二维数组定义格式如下:
数据类型 数组名[第一维大小][第二维大小];
1.3 数组的初始化
为了方便接介绍,接下来以一维数组为例,当然对于二维三维等更高维度的数组同样适用。数组的初始化可以使用下面三种方法实现:定义数组时给所有元素赋初始值,这被称为"完全初始化";
只给一部分元素赋值