2012年(18)
分类: C/C++
2012-03-17 11:54:59
数组做函数参数传递和函数返回值
函数不能返回一个,只能返回一个,或地址 。
一、一维数组
如果要将数组a[]传递给函数fun(),这个函数的定义中形参需要这样定义
void fun(int a[] ) 或者 void fun (int a[长度]) 调用的时候就可以直接使用fun(a)。
例:
#include
int a[3]={5,3,2};
int *p(int a[])
{
a[0]=a[2];
return a;
}
int main()
{
int i;
int *b=p(a);
for(i=0; i<3; i++)
printf("%d ",b[i]);
return 0;
}
二、二维数组
如果要将数组a[][]传递给函数fun(),这个函数的定义中形参需要这样定义
void fun(int a[][6] ) 调用的时候就可以直接使用fun(a)。
例:用typedef 定义一个新的类型,详细用法参照博文(typedef_函数指针)
#include
typedef int(*aa)[2];
int arr[3][2],i,j;
aa Exchange(int arr[][2])
{
int array[2][3]={{3,7,1},{9,4,2}};
for (i=0; i<=1; i++)
{
for(j=0; j<=2; j++)
{
arr[j][i] = array[i][j];
printf("%d ",array[i][j]);
}
printf("\n");
}
return arr;
}
int main()
{
int(*p)[2]; //一个二维数组的用法
p = Exchange(arr);
printf("输出数组\n");
for (i=0; i<=2; i++)
{
for(j=0; j<=1; j++)
{
printf("%d ",p[i][j]);
}
printf("\n");
}
return 0;
}