数组,一种线性的相同类型变量的集合。数组分为一维数组和多维数组。
一维数组
定义
一维数组定义方式为:
类型 数组名 [常量表达式];
其中,类型是指的基本数据类型或者自定义的数据类型。数组名是定义的数组标识符,数组的名字。常量表达式是数组元素的个数,即数组长度。
- 数组的类型实际上指的是数组元素的类型,在一个数组中,元素类型有且仅有一种(不代表其它计算机语言)。
- 数组名不能与其它变量同名。如
int a;
float a[10];
复制代码
是错误的。
- 数组的下标从0开始计算,即第一个元素是 a[0];
- 定义时常量表达式可以是符号常数,但不能是变量。如
#define TEN 10
int a[TEN + 1]; //合法的
int b[3+2]; //合法的
int n = 3;
int c[n]; //赋值时是错误的
复制代码
引用
一维数组的引用方式为
数组名[下标]
下标只能是整型常量or整型表达式
int a[10] ;
int n = 2;
a[1]; //合法的
a[n]; //使用时是合法的
复制代码
初始化和赋值
初始化指在数组定义时给数组元素赋予初值。初始化分为 完全初始化 和 不完全初始化 ,即是否在初始化时给数组所有元素进行的初始化赋值
int a[5] = {1,2,3,4,5}; //完全初始化
int b[5] = {1,2,3}; //不完全初始化,后面两个元素值为0
int c[] = {1,2}; //等同于 int c[2] = {1,2};
复制代码
赋值时不能对数组整体赋值,
int a[5];
a[5] = {1,2,3,4,5}; //错误的
a = {1,2,3,4,5}; //错误的
复制代码
int a[5] = {1,2,3,4,5};
int b[5];
b = a ; //也是整体赋值,也是错误的
复制代码
赋值只能在初始化之后,对数组里某个元素单独赋值,如 a[0] = 1;
二维数组
二维数组可以看做是一维数组嵌套而成的。二维数组的形式是
类型 数组名 [常量表达式1][常量表达式2];
与一维数组不同的是,后面两个常量表达式一般理解成 行 与 列 ,即
int a[2][3]; //表达的是一个 2 行,3列 的数组
复制代码
即
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
复制代码
其他规则内容与一维数组基本一致,如
定义
int a[2][3];
复制代码
赋值
int a[2][3] = {{1,2,3},{4,5,6}}; //分段赋值
int b[2][3] = {1,2,3,4,5,6}; //按行连续赋值
//两者最终结果都是一致的
复制代码
使用
int a[2][3] = {}; //二维数组a里面所有元素值都初始化为0
a[0][1] = 2; //对第一行第二列元素赋值为 2
复制代码