目录
[1. 数组的概念](#1. 数组的概念)
[2. 一维数组的创建及其初始化](#2. 一维数组的创建及其初始化)
[2.1 数组的创建](#2.1 数组的创建)
[2.2 数组的初始化](#2.2 数组的初始化)
考点总结:当我们未对数组进行初始化时,数组里面的元素打印出来是乱码,但哪怕只对数组里面一个元素赋值,之后未被赋值的元素也会默认赋值为0
[3. 一维数组的使用](#3. 一维数组的使用)
[3.1 下标引用操作符](#3.1 下标引用操作符)
[3.2 数组的输入](#3.2 数组的输入)
[4. 一维数组在内存中的存储](#4. 一维数组在内存中的存储)
1. 数组的概念
数组是一组相同类型元素的集合
注意;数组中可以存放一个或者多个数据,但是不能让数组里面的元素个数为0
数组中存放的每一个数据,它们的类型是相同的
数组分为一维数组和多维数组,多维数组中常见的一般为二维数组
2. 一维数组的创建及其初始化
2.1 数组的创建
一维数组创建的语法如下:
type(类型) arr_name[常量值]
其中type就是对数组中所存放的数据类型做出一个定义,这个类型可以是char、int、short int、double等等类型的数据
arr_name值得就是数组的名字,这个名字可以由程序员自己根据实际情况而起名
而常量值就是用来指定数组的大小的,这个数组的大小是根据实际的需求指定的
比如现在我想要创建一个数组来存放我们学校1000个人的年龄大小
就如上图这样,这个数组就创建成功了
数组里面元素的类型和数组的名字,都是我们根据情况所设定的
比如数组就还可以用来存放名字,体重
2.2 数组的初始化
在我们之前学习变量的时候,我们就知道我们一开始需要给变量赋值,这被称为变量的初始化,同理,我们根据我们的需要创建了数组后,那我们自然也同样需要对数组进行一个初始化
那么数组应该如何进行初始化呢???
数组的初始化一般使用大括号进行,只需要将数据放入大括号里面即可
这样便将age数组里面的五个元素分别初始化为5,4,3,2,1
那肯定有人想问了,如果我们不初始化数组的话,数组里面的元素默认会是几呢?
大家可以看到,如果不初始化数组,那么打印数组内部的各个元素出来的将会是一些乱码
那又有一个问题了,将数组每一个元素都需要一个一个的初始化实在是太麻烦了,如果我们只初始化几个,那剩下的未被初始化的数组元素打印出来还会是乱码吗?
可以看得到,在我们只对数组一个元素命名为0时,其他元素最后也默认为0
而我们对数组一个元素命名为其他数字的时候,其他未被命名的数组元素也同样默认为0
考点总结:当我们未对数组进行初始化时,数组里面的元素打印出来是乱码,但哪怕只对数组里面一个元素赋值,之后未被赋值的元素也会默认赋值为0
所以我们经常对数组初始化采用只对数组里面第一个元素赋值为0,来进行数组的初始化
2.3 数组的类型
数组本身也是有类型的,但数组的类型和我们之前学习到的变量的类型是有很大区别的,比如上面所写的
int age [5]
char name[5]
这些数组的类型实际上就是去除数组名之后剩下的东西
比如第一个数组的数组类型就是:int [5]
下一个就是:char [5]
3. 一维数组的使用
3.1 下标引用操作符
我们可以用一维数组来存放我们的数据,那么我们存放之后如何提取呢???
这就要提到一个操作符:下标引用操作符[ ]
C语言本身规定数组是有下标的,下标从0开始,如果数组有n个元素,那么最后一个元素的下标就是n-1,下标本身就相当于数组里面每一个元素的代号
当我们需要具体提取哪一个数组元素的时候,使用下标引用操作符就会变得十分简单
现在我们来实践一下,使用下标引用操作符精确找到我们在数组中所存储的信息
通过下标引用操作符,我们就精确打印出了下标为三的数组元素,这其实也侧面反映了,在我们对于数组进行初始化的时候,是按照从左到右的顺序依次给下标为0,下标为1等等的数组元素进行赋值
3.2 数组的输入
在明白了下标引用操作符的工作原理之后,我们就可以继续让我们自己输入数据到数组里面存储起来了
4. 一维数组在内存中的存储
前面的知识就是对一维数组的使用,但为了让大家更加深入了解一维数组,我们要先深入了解一下数组在内存之中的存储
我们先来依次打印出数组元素的地址看看
如上图所示,我们仔细观察一下这些数组元素的地址我们就可以发现,下一个元素的地址比上一个元素的地址要多上4
这里额外补充一点,在十六进制中,10用a表示,11用b表示,12用c表示,以此类推
所以上面的C实际上就是12的意思
总结:数组中的元素随着下标的增长,地址是由小到大逐渐变化的,而每两个元素之间相差四,正是因为一个整型类型所占的空间是四个字节
所以我们可以知道数组在内存中是连续存放的