数组是一组相同类型元素的集合,也就是说:数组至少包含两个及以上的元素,且元素类型相同。
数组包括一维数组和多维数组,其中二维数组最常见。下面我们一一介绍。
一维数组:
格式:type name [常量值];
type是类型,它可以是int double float char等类型
name是数组名字,这个你自己定义,有意义就行
常量值,也就是数字(在vs里,这里不可以使用变量)
就比如我下面定义应该身高的整型数组:
int hight[10];
有些时候,我们创建数组需要给他初始化,数组的初始化一般使用大括号,将数据放入打括号内,每一个数据之间用逗号隔开。下面我们给出代码,请你一定要仔细观察:
int hight[3]={178,152,185};
int price[3]={50};
int score[3]={5,6,8,9};
这里我们初始化了三个数组,其中第一个是完全初始化;第二个不完全初始化,这种初始化,第一个元素的值为50,而数组内后面的元素值都为0;第三个初始化错误,初始化的项数多余数组内元素个数。
数据存在数组中了,那我们怎么查找数据呢?这时就需要数组下标了。
数组下标:
数组的下标和数组元素是一一对应的,数组的下标都是从0开始,数组有n个元素,那么它的下标就是从0到n-1的。
数组的访问需要一个操作符——[],下标引用操作符,这个之前讲过,这里就不重新讲解了,不了解的可以去看这篇博客: 写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/138131954
下面我们给出代码来演示下标是怎么帮助我们查找数组元素的:
因为数组下标是从0开始,所以我们通过数组下标来查找数组元素时,查找第n个元素,下标就是n-1。
当我们想访问数组中所有的元素时,我们可以使用循环来解决,例如:
访问数组中元素,我们讲完了,接下来说说向数组中放入数据把!
数据的输入:
这个我们同样可以使用循环来完成,例如: 我向数组arr中输入1-10,下面我们来把输进去的值再打印到屏幕上验证一下吧,看看是不是输入和输出的一样
结果表明,我们这样是可以将数据输入数组中的。
一维数组再内存中的存储:
此时,你觉得数组再内存中存储是连续的还是散乱的呢?我们一起来验证下吧!
我们将上面的代码修改下,不再打出数据,而是将数组中元素的地址打印在屏幕上。
注意看这张图,这里面的地址都是连续存在的,每个元素都是int类型,所以每个元素都是4个字节,所以相邻元素的地址之间也就相隔4。
由此我们得出结论:数组的元素在内存中是连续存在的
二维数组:
前面我们学习了一维数组,当我们把一维数组当作元素存储在数组中,这时候这个数组就是二维数组,⼆维数组作为数组元素的数组被称为三维数组,⼆维数组以上的数组统称为多维数组。这里我们讲下二维数组。
格式:type name[常量值1][常量值2]; 这和一维数组类似
int hight[3][2];
就好比hight这个数组,第一个常量值3,代表总共有三行;第二个常量值2;代表有两列。
这里初始化和之前的一维数组类似,只不过,在这里我们要将数组的一行元素全部初始化后,才能继续初始化下一行,例如,我想将hight[3][2]这个数组的每一行都初始化为1,2,3:
int hight[3][2]={1,2,3,1,2,3};
这里常量值1是可以省略的,但是常量值2不可以省略,也就是行数可以不写,但是列数必须写。数组中每一行元素存满之后会自动跳到下一行继续存入数值。
二维数组的输入和输出:
这个也和一维数组类似,就是需要嵌套循环:
下标查找也都一样,我就不细说了。
一维数组和二维数组的基础方面也就讲完了,后续有不懂的可以留言 私信。