您的位置:首页 > 编程语言 > C语言/C++

c语言中用函数传递数组的两个方法

2015-04-03 16:45 225 查看
#include <stdio.h>  

#define GetLen(arr) sizeof(arr)/sizeof(int) //使用这种方式得到数组的长度  

//这种方式也可以改变main方法中的数组元素的值   

//缺点:每次都要传递5*4 20个字节的数组长度的数组形参   

void f1(int a[]){  

    int i=0;   

    int len=GetLen(a);   

    for(;i<len;i++){  

        a[i]=i+10;   

    }   

}  

//这种方式也可以改变main方法中的数组元素的值  

//优点:每次只要传递4个字节长度的指针变量即可   

//缺点:数组的长度不好获取,在正常的开发中需要传入长度,当然也可以使用其他的方式获取   

void f2(int * a){  

    int i;  

    int len=GetLen(*a);//$$1   

    printf("$$%d\n",len);   

    for(i=0;i<5;i++)  

        *(a+i)=i+20;   

}   

void main(){  

    int a[5]={1,2,3,4,5};  

    int i=0;   

    int length=GetLen(a);  

    printf("##%d\n",length); //##6   

    for(;i<length;i++)  

        printf("%d\n",a[i]);   

    f2(a);  

    i=0;   

    for(;i<length;i++)  

    printf("%d\n",a[i]);  

}  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: