数组
数组的概念
数组是若干相同类型的数据的在内存中有序存储的集合。
- 数组用于存储一组数据。
- 数组中存储的数据类型必须相同。
- 数组会在内存开辟一块连续的空间。
例如:
1 | int a[10] |
定义了一个整型数组 a,a 是数组名,数组中每个元素类型都是
int
,而且在内存中连续储存,这 10
个元素分别是:a[0]
、...、a[9]
,数组索引从 0
开始。
数组的分类
按元素类型分类
- 字符数组:
char s[10];
- 短整型数组:
short int a[10];
- 整形数组:
int a[10];
- 长整型数组:
long int a[5];
- 浮点型数组:
float a[6];
、double a[8];
- 指针数组:
char *a[10];
、int *a[10];
- 结构体数组:
struct stu boy[10];
按维数分类
- 一维数组:
int a[30];
- 二维数组:
int a[2][30];
,有行有列,是一维数组的数组。 - 多维数组:
int a[4][2][10];
,三维数组由多个相同的二维数组构成。
数组的定义
一维数组的定义
语法:
1 | 数据类型 数组名[数组元素个数]; |
定义数组是数组元素个数必须为整型常量。
1 |
|
输出结果:
二维数组的定义
语法:
1 | 数据类型 数组名[行数][列数]; |
二位数组的行数可以省略,但列数不能省略。
1 |
|
输出结果:
定义并初始化
一维数组的初始化
1 |
|
输出结果:
一维数组还可以按位置初始化:
1 | #include <stdio.h> |
二维数组的初始化
按行初始化:
1 | // 全部初始化 |
逐个初始化:
1 | // 全部初始化: |
按钮:
1 |
|
输出结果:
数组元素的引用方法
一维数组元素的引用方法:
1 | 数组名[索引]; |
二维数组元素的引用方法:
1 | 数组名[行索引][列索引]; |
1 |
|
输出结果:
字符数组的定义和初始化问题
1 | char c1[] = {'c', ' ', 'p', 'r', 'o', 'g'}; |
字符数组的引用:
- 用字符串方式赋值比用字符逐个赋值要多占 1
个字节,用于存放字符串结束标志
\0
. - 上面的数组 c2 在内存中的实际存放情况为:
- 由于采用了
\0
标志,字符数组的输入输出将变得简单方便。
1 |
|
输出结果为: