前言
数组的概念:
一组相同类型的数据的集合
一组相同类型的变量的集合
数组也是一种数据类型
数组的应用:
批量处理多个数据。
语法:
类型说明符 数组名[常量表达式]
(1) (2) (3)
说明:
(1)类型说明符 --- 数据类型
整型 int/short/long/long long
浮点型 float / double /long double
字符型 char
作用: 用来说明 该数组中元素的类型
(2)数组名 --- 名字 (标识符)
用来代表这个数组
起名字规则 与 之前变量名起名规则一致
(3)[常量表达式]
--- [] //这个就是数组类型
常量表达式 //数组长度 --代表数组中元素的个数
注:
1. c99标准之后,数组长度 可以是变量
可变长数组
但是,不能初始化
2. 数组长度,可以省略,但是必须要有初始化
编译器要根据初始化的值,来推算实际的长度
int len = sizeof(a)/sizeof(int); //计算实际长度
eg:
int array[10]; //表示此时定义了一个数组
//这个数组中存放的是int型的数据
//存放了10个int型的数据
//表示定义了一个可以存放10个int型数据的数组
//理解的角度,相当于一下子定义出10个int型变量
数组给值:
1.初始化
int a[10] = {}; //{} 初始化器
//全部初始化
int a[10] = {1,2,3,4,5,6,7,8,9,10};
//部分初始化 ---未初始化的部分会被初始化为0
int a[10] = {1,2,3,4,5};
//不初始化 --- 数组中是随机值(垃圾值)
int a[10];
2.赋值
输入的方式
循环赋值
数组特点:
连续性 --- 数组空间是一片连续内存空间
有序性 --- 数组的元素挨个存放
单一性 --- 数组元素类型是同一类型
数组元素的引用:
语法:
数组名[下标]; //[] 此时表示的是一种运算 --- 数组下标运算
下标含义:
a[0] //下标表示的是相对于 数组名 偏移了几个元素
偏移量
a[1]
a[2]
...
a[9]
数组越界
//编译器不会检查,程序员自己小心
注意:
int a[10];
a 所代表的值 数组所占空间的首地址
a 所代表的数据类型为a整个数组的类型
a所代表的类型是int[10] ,这就是所谓的数组类型
int a; //判断标识符所代表的数据类型 ---去掉标识符,剩下就是标识符对应的数据类型
int a[10]可以看作int[10] a