在线试读

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]