Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101982379
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: C/C++

2008-04-20 16:19:19

作者:    

    4.4  数组变量
    所谓数组就是指具有相同数据类型的变量集, 并拥有共同的名字。数组中的每
个特定元素都使用下标来访问。数组由一段连续的存贮地址构成, 最低的地址对应
于第一个数组元素, 最高的地址对应最后一个数组元素。数组可以是一维的、也可
以是多维的。Turbo C2.0象它高级语方一样也使用数组变量。

    一、一维数组
    一维数组的说明格式是:
      类型  变量名[长度];
    类型是指数据类型, 即每一个数组元素的数据类型, 包括整数型、浮点型、字
符型、指针型以及结构和联合。
    例如:
     int a[10];
     unsigned long a[20];
     char *s[5];
     char *f[];

    说明:
    1. 数组都是以0作为第一个元素的下标, 因此, 当说明一个int a[16] 的整型
数组时, 表明该数组有16个元素, a[0]~a[15], 一个元素为一个整型变量。
    2. 大多数字符串用一维数组表示。数组元素的多少表示字符串长度,  数组名
表示字符串中第一个字符的地址,   例如在语句char  str[ 8] 说明的数组中存入
"hello"字符串后, str表示第一个字母"h"所在的内存单元地址。str[0] 存放的是
字母"h"的ASCII码值, 以此类推, str[4]存入的是字母"o"的ASCII码值, str[5]则
应存放字符串终止符'\0'。
    3. Turbo C2.0对数组不作边界检查。例如用下面语句说明两个数组
    char str1[5], str2[6];
    当赋给str1一个字符串"ABCDEFG"时, 只有"ABCDE"被赋给, "E" 将会自动的赋
给str2, 这点应特别注意。

    三、多维数组
    多维数组的一般说明格式是:
       类型  数组名[第n维长度][第n-1维长度]......[第1维长度];
    这种说明方式与BASIC、FORTRAN等语言中多维数组的说明不一样。
    例如:
      int m[3][2];       /*定义一个整数型的二维数组*/
      char c[2][2][3];   /*定义一个字符型的三维数组*/
    数组m[3][2]共有3*2=6个元素, 顺序为:
      m[0][0], m[0][1], m[1][0], m[1][1], m[2][0], m[2][1];
    数组c[2][2][3]共有2*2*3=12个元素, 顺序为:
      c[0][0][0], c[0][0][1], c[0][0][2],
      c[0][1][0], c[0][1][1], c[0][1][2],
      c[1][0][0], c[1][0][1], c[1][0][2],
      c[1][1][0], c[1][1][1], c[1][1][2],
    数组占用的内存空间(即字节数)的计算式为:
     字节数=第1维长度*第2维长度*...*第n维长度*该数组数据类型占用的字节数

阅读(250) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~