get_product_contenthtml
第3章
数组
有时候可能需要保存大量类型一致的数据,如一个班级里边所有学生的成绩,手机通讯录中所有联系人的电话,斐波那契数列的前100位数……对于这些类型一致、数量庞大的数据,如果使用不同变量来存储,就会让人觉得编程是一件很痛苦的事情。
比如,班级中有50名学生,那么总共需要创建50个整型变量来存放他们的成绩。如果很不幸,恰巧这次又是期末考试,总共考了5个科目,那么每一科要创建50个变量,总共就需要创建250个变量,然后再依次赋值:
#include <stdio.h>
int main(void)
{
int a1, a2, a3, a4, a5, …, a50;
int b1, b2, b3, b4, b5, …, b50;
int c1, c2, c3, c4, c5, …, c50;
int d1, d2, d3, d4, d5, …, d50;
int e1, e2, e3, e4, e5, …, e50;
…
scanf("%d", &a1);
…
scanf("%d", &a50);
scanf("%d", &b1);
…
return 0;
}
相信没有人会写这样的代码,因为这样编程,还不如找个本子用笔记下来直观。所以,C语言引入了数组这个概念。
3.1 一维数组
3.1.1 定义一维数组
数组就是存储一批同类型数据的地方,定义一维数组的语法格式为:
类型 数组名[数量];
int a[6]; //定义一个整型数组,总共存放6个元素
char b[24]; //定义一个字符型数组,总共存放24个元素
double c[3]; //定义一个双精度浮点型数组,总共存放3个元素
在定义数组时,需要在数组名后边紧跟一对方括号,其中的数量用来指定数组中 元素的个数,因为只有告诉编译器元素的个数,编译器才能申请对应大小的内存给它 存放。
上面三种数组类型,都占用多少字节的内存呢?
在本书的编译环境中,它们都是占用24字节的内存空间。在编译器编译程序的时候,这个空间就已经创建了。
3.1.2 访问一维数组
访问一维数组中的元素,同样是使用方括号:
数组名[下标];
a[0]; //访问a数组中的个元素
b[1]; //访问b数组中的第二个元素
c[5]; //访问c数组中的第六个元素
int a[5]; //创建一个具有五个元素的数组
a[0]; //访问个元素的下标是0,不是1
a[5]; //报错,因为第五个元素的下标是a[4]