C语言程序设计:数组
数组
定义数组
- <类型> 变量名称[元素数量];
int grades[100];
double weight[20];
- 元素数量必须是整数
- C99之前:元素数量必须是编译时刻确定的字面量
数组是什么
数组是一种容器,它具有的特点是:
容器是现代程序设计中非常重要的一个概念,或者说现代编程语言都应该提供某种形式的容器,或者说语言所提供的容器的能力的大小是评判语言能力大小的重要标准。
- 其中所有元素具有相同的数据类型
- 一旦创建,不能改变大小
- 在内存中,数组的元素是紧密依次排列的
数组的单元
-
数组的每个单元就是数组类型的一个变量
-
使用数组时放在
[]
中的数字叫做下标或者索引,下标从0开始计数:数组下标从0开始计数是由C语言始创的,因为这样可以让C语言的编译器简化很多操作。
- grades[0]
- grades[99]
- average[5]
有效的下标范围
- 编译器和运行环境都不会检查数组下标是否越界,无论是对数组单元做读还是写
- 一旦程序运行,越界的数组可能造成问题,导致程序崩溃
- segmentation fault
- 但是也可能运气好,没有造成严重的后果
- 所以程序员有必要保证程序只使用有效的下标值:[0,数组的大小-1]
长度为0的数组?
int a[0];
- 可以存在但无用
数组运算
数组的集成初始化
int a[] = {2,4,2,31,312,31,31,231,21,31,3}
-
直接给出数组所有元素的初始值
-
不需要给出数组大小,编译器会自动判断
-
若给出了数组大小,但后面的初始值数量不足,则其后的元素会被初始化为0
-
int[10] = { 2, 3}; PRINT: 2 3 0 0 0 0 0 0 0 0 0
-
集成初始化时的定位
int a[10]