- #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]);
- }
数组的函数传递的两种方式(数组名和指针)
最新推荐文章于 2022-11-22 19:11:55 发布