目录
为什么要使用数组?
当统计一个班级中每个人的身高体重时,需要定义很多个变量要存放,这样就会变得非常繁琐,因此提出了数组,用来批量地处理多个数据。所以我们可以对数组定义一个初步的概念:数组,就是一组相同类型数据的集合。需要说明的是数组也是一种数据类型
语法:
类型说明符 数组名 [常量表达式]
1.数组类型
也就是数据类型,包括之前学过的整型(int / short / long / long long)、浮点型(float / double / long double)、字符型(char)。它的作用是用来说明该数组中元素的类型 。
2.数组名
也就是这个数组的名字(标识符),起名规则与变量名起名规则一致:①由字母、数字、下划线组成。②不能以数字开头 ③不能与关键字、预处理命令、库函数重名。
3.[常量表达式]
[ ] --- 代表这个就是数据类型中的数组类型
常量表达式 --- 就是数组的长度,代表数组中元素的个数
注意:(1)c99标准之后,数组长度 可以是变量,称为可变长数组,但是不能初始化 。
(2)数组长度,可以省略,但是必须要有初始化,这是因为编译器要根据初始化的值,来 推算实际的长度 。
int len = sizeof(a)/sizeof(int); //计算实际长度
int array[10] --- 可以理解为开了10个int型的空间,每个4个字节,共40字节,相当于一下子定义
--- 出了10个变量。
数组给值:
1.初始化
int a[10] = { };//{ }表示初始化器,此时数组元素会全部被初始化器初始化为0
(1)全部初始化
int a[6] = {1,2,3,4,5,6};
(2)部分初始化
int a[6] = {1,2,3}; --- 未初始化的部分初始化为0
int a[6] = {0}
(3)不初始化
int a[6] --- 里面的值可能是垃圾值(随机值)
2.赋值
(1)循环赋值
(2)输入的方式赋值
数组特点:
连续性 --- 数组空间是一片连续内存空间
有序性 --- 数组的元素挨个存放
单一性 --- 数组元素类型是同一类型
3.数组元素的引用
语法:
数组名[下标]; // [ ] 此时表示的是数组下标运算 ,下标表示的是相对于 数组名 偏移了几个元素
数组越界 --- 编译器不会管,需要自己检查,如下图:
运行结果为:
这是由于最后一次循环时,i变成了10,而原来数组下标的最大值为9,发生了数组越界
eg :int a[10];
a 所代表的值 数组所占空间的首地址
a 所代表的数据类型 a 代表整个数组类型
判断标识符所代表的数据类型 ---去掉标识符,剩下就是标识符对应的数据类型
a所代表的类型是int[10] ,这就是所谓的 数组类型。
后续会持续更新~