Chinaunix首页 | 论坛 | 博客
  • 博客访问: 69072
  • 博文数量: 18
  • 博客积分: 375
  • 博客等级: 一等列兵
  • 技术积分: 236
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-10 14:40
文章分类
文章存档

2012年(18)

我的朋友

分类: C/C++

2012-03-17 11:54:59

                                               

数组做函数参数传递和函数返回值

 

       函数不能返回一个,只能返回一个,或地址 。

                 

                            一、一维数组

 

如果要将数组a[]传递给函数fun(),这个函数的定义中形参需要这样定义 

void  funint a[] ) 或者 void fun (int a[长度]) 调用的时候就可以直接使用funa)。

 

例:

#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  funint a[][6] )  调用的时候就可以直接使用funa)。

 

:用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;

}

 

阅读(6059) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~