将一维数组传递给函数
在C/C++中,不能够将整个数组做为参数传递给函数.不过我们可以把指向数组的指针传递给函数,可以直接使用不包含索引部分的数组名.下面的代码片断把数组i的地址传递给函数func1().
int main( void )
{
int i[10];
func1( i );
.
.
.
}
如果一个函数要接收一个一维数组,可以用如下的三种形式定义形式参数.第一是一个指针,第二是一个有大小的数组,第三是一个未指定大小的数组.例如:
void func1( int *x ) /* pointer */
{
.
.
.
}
or
void func1( int x[10] ); /* sized array */
{
.
.
.
}
or
void func1( int x[] ); /* unsized array */
{
.
.
.
}
这三种声明方式是等价的.编译器都会"知道"函数将会接受一个整型指针.其中,第二种方式是最标准的方式.最后一种方式定义了一个未限制长度的数组做为形式参数.实际上,在定义函数的形式参数的时候,数组的长度是没有关系的.例如:
void func1( int x[32] );
{
.
.
.
}
在编译的时候,编译器仍然会认为函数将会接受一个指针,而不是真的创建一个长度为32的数组.