目录
数组
数组的概念
数组的操作
字符数组(字符串)
多维数组
10 数组
10.1 数组的概念
① 数组四要素
1 2 3 4
| 数组名:本质上是标识符常量,需要符合标识符规范。 元素:数组中的成员,同一个数组中的元素必须是相同的数据类型。 下标:也称为索引、角标,就是元素的数字编号,是从0开始的连续数字;通过下标可以访问到数组中的某一个元素。 长度:元素的个数。
|
② C 语言数组特点(不用背)
1 2 3 4
| (1)创建数组时会在内存中开辟一整块连续的空间,占据的空间的大小,取决于数组的长度和数组中元素的类型。 (2)数组中的元素在内存中是依次紧密排列的且有序的。 (3)数组一旦初始化完成,其长度就是确定的,数组的长度一旦确定,就不能修改。 (4)我们可以直接通过索引(下标)获取指定位置的元素,速度很快。
|
10.2 数组的操作
① 如何定义数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| int arr1[4]; arr1[0] = 100; arr1[1] = 200; arr1[2] = 300; arr1[3] = 400;
double arr2[5] = { 1.5, 2.5, 3.5, 4.5, 5.5};
short arr3[] = {10,20,30,40,50,60,70,80};
|
② 访问数组元素
③ 数组越界
1
| 合理的下标范围:0 ~ 长度-1; 如果使用不在合理范围内的下标,越界访问,访问的是数组之外的内存区域。
|
④ 数组长度计算
1 2 3
| sizeof 数组名 / sizeof 数组名[0];
sizeof 数组名 / sizeof (元素的数据类型关键字)
|
⑤ 遍历数组
1 2 3 4
| for (int i = 0; i < 数组长度; i++) { 数组名[i]; }
|
10.3 字符数组(字符串)
① 字符串的本质
1 2 3 4
| 字符串就是由字符组成的数组 特点: ① 有专门的占位符 %s ② 字符串结尾,会自动添加一个 \0 作为字符串结束的标志,所以字符数组最后一个元素必须是 \0。
|
② 如何定义字符串
普通方式初始化
1 2 3 4 5 6 7 8 9 10 11
| char str1[9] = {'S', 'h', 'a', 'n', 'g', 'h', 'a', 'i', '\0'}; char str2[] = {'S', 'u', 'Z', 'h', 'o', 'u', '\0'};
char str3[5] = {'W', 'u', 'X', 'i'}; char str4[15] = {'X', 'i', 'A', 'n'};
char str5[4] = {'L', 'a', 'S', 'a'}; char str6[] = {'W', 'u', 'H', 'u'};
|
简写方式初始化:
1 2 3 4
| char str1[] = {"Shanghai"};
char str2[] = "Beijing";
|
③ 字符串的访问和遍历
字符串长度计算:
1 2
| sizeof: 字符串的内存存储大小就是字符串的长度,字符串的每个元素都是1字节 strlen(): 位于标准库头文件 <string.h> 中, 从第一个字符开始计数一直到字符串结束标记(不包括结束标记)
|
占位符:
10.4 多维数组
① 多维数组的概念
1 2 3
| 1. 如果数组的元素还是数组,这样的数组就称为多维数组。 2. 多维数组分为二维数组、三维数组等 3. 二维数组相关概念:行数、列数、行下标、列下标
|
② 二维数组的定义
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| int arr1[3][2]; arr1[0][0] = 10; arr1[0][1] = 20; arr1[1][0] = 100; arr1[1][1] = 200; arr1[2][0] = 1000; arr1[2][1] = 2000;
int arr2[3][4] = { {10, 20, 30, 40}, {100, 200, 300, 400}, {1, 2, 3, 4}};
int arr3[2][4] = {100, 200, 300, 400, 10, 20, 30, 40};
int arr4[][3] = {10,20,30,40,50,60};
|
③ 二维数组的访问和遍历
长度计算:
1 2
| 行数: sizeof 数组名 / sizeof 数组名[0] 列数: sizeof 数组名[0] / sizeof 数组名[0][0]
|
访问内层元素:
④ 二维数组的内存形式
1
| 内存中,各元素是连续存放的,先顺序存放第一行的元素,再存放第二行的元素。
|