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

来源:互联网 发布:linux红帽5安装oracle 编辑:程序博客网 时间:2024/06/06 17:46
#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]);}

原创粉丝点击