第六章 数组
本章要求
1.一维数组和多维数组的定义,初始化和引用 .
2.字符串与字符数组
引言:
在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。
一. 一维数组的定义
定义: 数组是有序数据(必须是相同的数据类型结构)的集合.
格式: 类型说明符  数组名[常量表达式]
例如:  int a[10] ;  表示数组名为a,有10个元素,并且每个元素的类型都是int型的.
float b[10],c[5];  说明实型数组b有10个元素,实型数组有5个元素;
注意:
1. 数组名的命名规则和标示符的命名规则相同。
2.常量表达式要有方括号括起来,不能用圆括号,int a(10);
这是非法的!
3.常量表达式表示数组元素的个数,即数组长度.并且数组的
第一个元素是从下标0开始的!
4.常量表达式可以是常量也可以是符号常量,不能包含变量。C语言绝对不允许对数组的大小作动态定义;
  例如:下面是非法的
      int n;
      scanf(%d,&n);
      int a[n];
5.数组的类型实际上就是指数组元素的取值类型,对于同一数组,它所有元素的数据类型都是相同的;
6.数组名不能与其他变量名相同;例如:
      main()
      {
        int a;
        float a[10];
        ………..
}  是非法的!
7.允许在同一个类型说明中,说明多个数组和多个变量;
  例如: int a,b,c,d[10],e[5];
二. 一维数组元素的初始化
    有下列方法初始化:
1)在定义数组时,对数组元素赋初值;
    例如: int a[10]={0,1,2,3,4,5,6,7,8,9};
      上面的语句等价于
  a[0]=0,a[1]=1,
2)可以只给一部分元素赋初值,例如:
    int a[10]={0,1,2,3,4};
    表示只给数组的前5个元素赋初值,后5 个元素的值,系统自动默认为0
3)在对全部数组元素赋初值时,可以不指定数组长度;例如:
    int a[5]={0,1,2,3,4};
    可以改写为: int a[]={0,1,2,3,4};
  但是,int a[10] ={0,1,2,3,4};
不能改写为: int a[]={0,1,2,3,4};
三. 一维数组的引用
    数组必须先定义,后使用!
C语言规定: 只能逐个引用数组元素,而不能一次引用整个数组!
数组的引用形式为:  数组名[下标]  其中,下标可以是整型常量也可以是整型表达式.
    例如: a[0]=a[5]+a[7]+a[2*3]
四. 一维数组的程序举例
1.读10个数存入数组中,输出数组中的所有数据.
  main()
  {
    int i,a[10];
    for(i=0;i<=9;i++)
      a[i]=i;  /*顺序给数组元素赋初*/
    for(i=0;i<=9;i++)
        printf(%d,a[i]); /*顺序输出数组元素*/
}
2.读10个整数存入数组中,输出平均值.
#include <stdio.h>
#define size  10
main()
{
  int x[size],i;
  float s=0,ave;
  for(i=0;i<size;i++)
    scanf(%d,&x[i]);
字符串比较函数实现for(i=0;i<size;i++)
  s+=x[i];
ave=s/size;
printf(%d\n,ave);
}
五. 二维数组的定义
定义格式: 
类型说明符  数组名[常量表达式1][常量表达式2] 
其中表达式1表示第一维下标的长度;
表达式2表示第二维下标的长度;
例如:  int a[2][3];

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。