|
|
|
int a[10];a数组下标是从0~9,数组元素为a[0]~a[9];同理,如果定义一个数组长度为N,则下标是从0到N-1,即C语言的数组下标总是从0开始。例如:
|
|
|
int b[10][10]:数组元素为b[0][0]~b[9][9],且数组元素是按行排列的。
|
|
|
|
|
初值个数可以少于数组长度,系统将从下标为0的元素开始对其赋值,未赋初值的数组元素值自动置为0。
|
|
|
|
由于数组名实际上是一个指针,所以把数组名当作参数传递,本质上是传递地址,因此被调用函数可以改变数组元素的值。具体的例子可见3.5.2和3.5.3部分。
|
|
|
|
当一维数组作为参数传递时,在函数头的形式参数说明中,下标可以省略,例如:
|
|
|
|
但二维以上数组只能省略第一维,例如:float f(int b[][N])是正确的,而float f(int b[][])是错误的。float f(int c[][M][N])是正确的,但float f(int c[][][])是错误的。究其原因是数组在实际存放时,多维数组向一维内存映射需要后面的长度说明。若不将后面几维数组长度传给被调用的函数,被调用函数将无法确定映射关系。
|
|
|
由于要预先确定后几维数组的长度,故使用多维数组作为参数的函数常常不具有通用性,不能作为通用函数库的函数。
|
|
|