字体
第(3/6)页
关灯
   存书签 书架管理 返回目录
7,85};

    这两种赋初值的结果是完全相同的。

    【例 7.7】

    main()

    {

    int i,j,s=0, average,v[3];

    int a[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}};

    for(i=0;i<3;i++)

    { for(j=0;j<5;j++)

    s=s+a[j][i];

    v[i]=s/5;

    s=0;

    }

    average=(v[0]+v[1]+v[2])/3;

    printf("math:%d\nc languag:%d\ndFoxpro:%d\n",v[0],v[1],v[2]);

    printf("total:%d\n", average);

    }

    对于二维数组初始化赋值还有以下说明:

    1) 可以只对部分元素赋初值,未赋初值的元素自动取 0 值。

    例如:

    int a[3][3]={{1},{2},{3}};

    是对每一行的第一列元素赋值,未赋值的元素取 0 值。 赋值后各元素的值为:

    1 0 0

    2 0 0

    3 0 0

    谭浩强      C 语言程序设计               2001 年 5 月 1 日

    int a [3][3]={{0,1},{0,0,2},{3}};

    赋值后的元素值为:

    0 1 0

    0 0 2

    3 0 0

    2) 如对全部元素赋初值,则第一维的长度可以不给出。

    例如:

    int a[3][3]={1,2,3,4,5,6,7,8,9};

    可以写为:

    int a[][3]={1,2,3,4,5,6,7,8,9};

    3) 数组是一种构造类型的数据。二维数组可以看作是由一维数组的嵌套而构成的。设

    一维数组的每个元素都又是一个数组,就组成了二维数组。当然,前提是各元素类

    型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组。C语言

    允许这种分解。

    如二维数组 a[3][4],可分解为三个一维数组,其数组名分别为:

    a[0]

    a[1]

    a[2]

    对这三个一维数组不需另作说明即可使用。这三个一维数组都有 4 个元素,例如:

    一维数组 a[0]的元素为 a[0][0],a[0][1],a[0][2],a[0][3]。

    必须强调的是,a[0],a[1],a[2]不能当作下标变量使用,它们是数组名,不是一个

    单纯的下标变量。

    7.2.4 二维数组程序举例

    7.3 字符数组

    用来存放字符量的数组称为字符数组。

    7.3.1 字符数组的定义

    形式与前面介绍的数值数组相同。

    例如:

    char c[10];

    由于字符型和整型通用,也可以定义为 int c[10]但这时每个数组元素占 2 个字
上一页 目录 下一页