您的位置:首页 > 其它

数组的函数传递的两种方式(数组名和指针)

2016-07-25 21:54 429 查看
#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]);  
}  



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