目录
数组
数组的概念
数组的操作
字符数组(字符串)
多维数组        
  
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
   | 内存中,各元素是连续存放的,先顺序存放第一行的元素,再存放第二行的元素。
   |