数组
一个数组就是线性存储的一系列相同类型的值,例如10个字符或15个整数。整个数组有一个单一的名字,单独的项或元素可以使用一个整数索引来进行访问。例如,如下声明:
float debts[ 20 ] ;
声明debts是一个具有20个元素的数组,其中的每个元素都是一个float型的值。这个数组的第一个元素是debts[ 0 ],第二个元素是debts[ 1 ],这样一直到debts[ 19 ]。注意数组元素的编号是从0而不是1开始的。每个元素都可以被赋予一个float类型的值。例如,可以使用如下代码:
debts[ 5 ] = 32.54 ;
debts[ 6 ] = 1.2e+21 ;
实际上,可以使用相同变量类型那样使用一个数组元素。例如,可以把一个值读入一个特定的元素:
scanf( "%f",&debts[4] ) ;
一个潜在的易犯的错误是:出于执行速度的考虑,c并不检查是否使用了正确的下标。例如,以下是错误代码:
debts[ 20 ] = 88.23 ; //没有这个数组元素
debts[ 33 ] = 828.33; //没有这个数组元素
但是编译器不会发现这样的错误。当程序运行的时候,这些语句把数据放在可能由其他数据使用的位置上,因而会产生破坏程序的后果甚至是程序崩溃。
数组可以是任意数据类型的数组:
int nannies[ 22 ] ; //一个存放22个整数数据的数组
char actor [ 26 ] ; //一个存放26个字符的数组
long big[ 500 ] ; //一个存放500个长整数的数组
例如,字符串被存储到一个字符数组里就是一个特别的例子。一般来说,字符数组就是元素都被赋予字符值的数组。如果字符数组包含了空字符\0,那么字符数组的内容就构成了一个字符串,其中空字符标志着字符串的结尾。
用于标识数组元素的数字称为下标,索引,或偏移量。下标必须是整数,而且下标从0开始。数组中的元素在内存中是顺序存储的。