嵌入式C语言完全学习笔记(六)
7、数组
到目前为止,我们已经学习了C语言的基本数据类型:整形、浮点型、字符型。再往后
就是复合数据类型。
所谓复合数据类型,是指由简单数据类型,经过一定的数据结构封装,组成而成的新的
数据类型。譬如数组、譬如结构体、譬如公用体
7.1、为什么需要数组?
数组就是数组成一个组,数就是一个特定数据类型的变量,组就是说好多数放在了一起。
7.2、怎么定义数组?
int a[4]; 数组中元素类型 数组名[数组元素个数];
总结:数组中的所有元素必须是同一种数据类型,不可能在一个数组中存储两种数据类型的数。
7.3、怎么使用数组?
数组定义的时候作为整体定义。但是使用的时候不能作为整体使用,使用时必须拆开使用数组中的各个元素。
譬如数组int a[4],使用其中的四个元素,分别用a[0]``a[3],其中[]是数组的标志,[]中的
数字叫做数组下标(index,索引),下标是我们访问数组中各个元素的指引。下标是0代表数组中第一个元素,下标是1代表数组第二个元素。如果数组长度为n,下标中最后一个是n-1。访问数组时要特别注意下标,下标是从0开始的,如果下标超出了n-1,会产生越界访问,结果是不可预期的。
7.4、数组的初始化问题
初始化(initinalize,简写为init),是为了让对象有一个预定的初始状态。
譬如说:
(1)简单变量的初始化
当一个局部变量定义时没有初始化,它的值是随机的。这个如果没有注意,可能会导致程序出错。怎么办?解决方案有两个:
第一个,在定义过后明确给它赋值,使用=运算符。
第二个,定义该变量时,同时进行初始化。
总结:
1、一般来讲,只要你记得显示赋值,则两种方式并无优劣差异。但是人会犯错,会不小心,所以还是定义同时初始化好一点,因为这个定义的时候就有了固定值,即使之后忘记显示赋值也不会造成结果是随机的。
2、一般情况下,定义的同时都将变量初始化为0。局部变量定义同时初始化为0,这是一个写代码好习惯。
(2)数组的初始化
第一种:完全初始化。依次赋值
第二种:不完全初始化。初始化式中的值从a[0]开始,依次向后赋值,不足的默认用0填充赋值
2、
C语言基础大模块:
数据类型
运算符
三种程序结构
函数
数组
指针
结构体、公用体、枚举
基础知识 + 推断能力
学习 = 基础知识 + 合理推论