当二维数组名作为实参时,对应的形参必须是一个行指针变量。例如,若主函数中有以下定义和函数调用语句:
#include <stdi0.h>#define M 5
#define N 3main()
{double S[M][N];
fun(S);
}
则fun函数的首部可以是以下三种形式之一:
(1)fun(double(*a)[N])
(2)fun(double a[][N])
(3)fun(double a[M][N])
注意:列下标不可缺。无论是哪种方式,系统都将把a处理成一个行指针。和一维数组相同,数组名传送给函数的是一个地址值,因此,对应的形参也必定是一个类型相同的指针变量,在函数中引用的将是主函数中的数组元素,系统只为形参开辟一个存放地址的存储单元,而不可能在调用函数时为形参开辟一系列存放数组的存储单元。