C语言基础专题 - 数组
本文介绍了C语言中数组地相关知识
阅读本文前推荐阅读:C语言数据类型
阅读本文后推荐阅读:C语言结构体
阅读本文后推荐阅读:C语言字符串
其它推荐阅读:python序列
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] = 10n[1] = 11n[2] = 12n[3] = 13n[4] = 14n[5] = 15n[6] = 16n[7] = 17n[8] = 18n[9] = 19我是数组c,以下是我各个元素的索引方式与它们索引后得到的值:c[0] = 99.72c[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;}
运行结果:
行号:0a[0][0] = 0a[0][1] = 0a[0][2] = 0行号:1a[1][0] = 1a[1][1] = 2a[1][2] = 0--------------------------------Process exited after 0.02721 seconds with return value 0请按任意键继续. . .
从代码我们可以学到:
二维数组的声明格式为:C类型 数组名[行数][列数];
,多维数组类似;二维数组的声明和索引都是先行后列的;与一维数组一样的是虽然声明的时候[]
中的整数代表元素的个数、这个个数是从1开始计算的,然而索引的时候[]
中的整数代表的是从0开始计算的索引号。