C语言基础专题 - 数组
1.🧐什么是数组?
答:数组是一个容器,它依据某种顺序存储固定大小的、相同类型的多个构成元素。
2.👨💻看代码学数组基础
我想我们没有必要在一开始对数组的各个只是点进行一一列举、分别说明。花5分支阅读理解完以下代码即可上手,这才是目的。
#include <stdio.h> int main (){ int n[10]; // 声明一个包含10个元素、每个元素都为 int 型的数组 float c[2]; //声明一个包含2个元素 、每个元素都为 float 型的数组 int i; /* 依据数组索引顺序初始化数组n的元素,使元素值构成一组整数 10 - 19 */ for ( i = 0; i < 10; i++ ){ n[ i ] = i + 10; } /* 使用索引对数组c的特定元素进行初始化 */ c[0] = 99.72; c[1] = 85.26; /* 打印数组n中每个元素的值 */ printf("我是数组n,以下是我各个元素的索引方式与它们索引后得到的值:\n"); for (i = 0; i <= 9; i++ ){ printf("n[%d] = %d\n", i, n[i] ); } /* 打印数组c中指定元素的值 */ printf("\n我是数组c,以下是我各个元素的索引方式与它们索引后得到的值:\n"); printf("c[0] = %.2f\n", c[0]); printf("c[1] = %.2f\n", c[1]); return 0; }
运行结果:
我是数组n,以下是我各个元素的索引方式与它们索引后得到的值: n[0] = 10 n[1] = 11 n[2] = 12 n[3] = 13 n[4] = 14 n[5] = 15 n[6] = 16 n[7] = 17 n[8] = 18 n[9] = 19 我是数组c,以下是我各个元素的索引方式与它们索引后得到的值: c[0] = 99.72 c[1] = 85.26 -------------------------------- Process exited after 0.0267 seconds with return value 0 请按任意键继续. . .
在上面的代码中我们可以学会:
- 1.数组的声明格式为
C类型 数组名 [数组元素个数];
,其中C类型(点击链接打开相关知识点页面)可以是int、double等任意有效的 C 数据类型。 - 2.数组的索引,也就是数组中某个元素的编号。这说明数组元素是有顺序,我们使用编号来获取对应的一个数组元素。
- 3.数组元素的索引是从0开始计算的,这意味着如果声明了一个拥有10个元素的数组,那么这10个元素的下标对应为0、1、2、~、9,初接触编程语言的读者需要额外留意。
在这我们还需要通过代码来了解数组的其它初始化书写方式,请看代码:
3.👩🏫发现问题——多维数组
请留意上面我们提到过的(也许你已经发现了):数组元素类型可以是任意有效的 C 数据类型
,没错这意味着数组的元素也可以是数组!——这就是所谓多维数组。
没有代码少直觉,还是让我们从阅读代码学习吧:
#include <stdio.h> int main (){ int a[2][3] = {{0,0,0}, {1,2,0}}; // 声明一个 2X3 数组(即2行3列数组) int i, j; /* 打印数组中每个元素的值 */ for ( i = 0; i < 2; i++ ){ printf("\n行号:%d",i); printf("\n"); for ( j = 0; j < 3; j++ ){ printf("a[%d][%d] = %d\n", i,j, a[i][j] ); } } return 0; }
运行结果:
行号:0 a[0][0] = 0 a[0][1] = 0 a[0][2] = 0 行号:1 a[1][0] = 1 a[1][1] = 2 a[1][2] = 0 -------------------------------- Process exited after 0.02721 seconds with return value 0 请按任意键继续. . .
从代码我们可以学到:
- 二维数组的声明格式为:
C类型 数组名[行数][列数];
,多维数组类似; - 二维数组的声明和索引都是先行后列的;
- 与一维数组一样的是虽然声明的时候
[]
中的整数代表元素的个数、这个个数是从1开始计算的,然而索引的时候[]
中的整数代表的是从0开始计算的索引号。