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

原文地址::http://blog.chinaunix.net/uid-26725388-id-3136822.html


相关文章

1、请问在C语言中,函数传参时怎样利用指针传递数组----http://zhidao.baidu.com/link?url=w-4y9RobWaKrKEJsNOPyIYEQPkBlbfLIYd5ZmQXkwNsuCsnPy0O7fP4FqB83qkUXapv_rZSAPXjS6Y5mu6t6lq


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

 

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

                 

                            一、一维数组

 

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

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

 

例:

#include <stdio.h>

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 <stdio.h>

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;

}


//=========================================================

备注::
1》当传数据结构数组时不知道要特别注意点什么!!!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值