传递数组给函数
如果您想要在函数中传递一个一维数组作为参数,您必须以下面三种方式来声明函数形式参数,这三种声明方式的结果是一样的,因为每种方式都会告诉编译器将要接收一个整型指针。同样地,您也可以传递一个多维数组作为形式参数。
方式1 形参是一个指针:
void my_function(int *array)
{
}
方式2 形参是一个已经定义大小的数组
void my_function(int array[32])
{
}
方式3 形参是一个未定义大小的数组
void my_function(int array[])
{
}
注意,如果形参是二维数组,第一维的长度可以不用指定,但是第二维的长度必须指定。
二维数组的传参方法如下:
方法1 第一维的长度可以不指定,但必须指定第二维的长度:
void my_function(int array[][32])
{
}
方法2 指向一个有32个元素一维数组的指针:
void my_function(int (*array)[32])
{
}
方法3 利用数组是顺序存储的特性,通过降维来访问原数组:
void my_function(int *array)
{
}
从函数返回数组
如果您想要从函数返回一个一维数组,您必须声明一个返回指针的函数。注意,C不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。
int *my_function()
{
static int array[32];
.......
return array;
}