自定义函数怎么传递数组C语言,C语言自定义函数怎么传参,一次性把数组的数据全部传入?...

数组参数属于指针参数.指针参数即时传址参数(或叫引用参数),如果想在函数中修改参数的值,这是唯一的途径.如果把数组当作参数,不管你愿意与否,它就是指针,指向第一个值的指针.1.数组参数就是指向第一个元素的指针:#include<stdio.h>voidgetArr(intp[],intsi);intmain(void){intns[]={1,2,3,4,5};getArr(ns,sizeof(ns)/sizeof(ns[0]));getchar();return0;}voidgetArr(intp[],intsi){inti;for(i=0;i<si;i++){printf("%d\n",p[i]);}}2.干脆直接声明为指针:#include<stdio.h>voidgetArr(int*p,intsi);intmain(void){intns[]={1,2,3,4,5};getArr(ns,sizeof(ns)/sizeof(ns[0]));getchar();return0;}voidgetArr(int*p,intsi){inti;for(i=0;i<si;i++){printf("%d\n",p[i]);}}3.即使你在形参中指定维数也不起作用:#include<stdio.h>voidgetArr(intp[2],intsi);intmain(void){intns[]={1,2,3,4,5};getArr(ns,sizeof(ns)/sizeof(ns[0]));getchar();return0;}voidgetArr(intp[2],intsi){inti;for(i=0;i<si;i++){printf("%d\n",p[i]);}}4.既然是指针,其值就有被修改的可能:#include<stdio.h>voidgetArr(intp[],intsi);intmain(void){intns[]={1,2,3,4,5};size_ti;getArr(ns,sizeof(ns)/sizeof(ns[0]));for(i=0;i<sizeof(ns)/sizeof(ns[0]);i++){printf("%d\n",*(ns+i));}getchar();return0;}voidgetArr(intp[],intsi){inti;for(i=0;i<si;i++){p[i]++;}}5.如果是字符数组,它自己能判断数组尾界:#include<stdio.h>voidgetArr(charp[]);intmain(void){charns[]="ABCDEFG";getArr(ns);getchar();return0;}voidgetArr(charp[]){inti;for(i=0;p[i];i++){printf("%c:%d\n",p[i],p[i]);}}

阅读全文 >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值