C语言练习(1)——函数的重载

函数重载问题

#include   <stdio.h>
int fun(int  x[], int  k)
{  
	if(k==0) return (x[0]);
	return  x[0]+fun(x+1, k-1);
}
int main()
{ 
	int  x[ ]={1,2,3,4,5};
	printf("输出结果:%d\n", fun(x,3));
	getch();//窗口保留函数,调试使用
}

我们看一下程序运行的结果:
在这里插入图片描述
这里要涉及的知识点:
1、数组作为函数形参传递的是地址
2、数组名x代表的是是数组首元素的首地址,x+1代表数组的下一个元素
注意:(x与&x的意义不一样,&x是数组的首地址,所以&x+1代表着是指越过本数组的下一个地址,即&x + 5*sizeof(int)这时候已经超出数组范围了。)
3、运行到return函数代表着一个函数的结束
4、函数重载
最后的结果是:
fun(x,3)
=x[0]+fun(x+1,2)
=x[0]+x[1]+fun(x+2,1)
=x[0]+x[1]+x[2]+fun(x+3,0)
=x[0]+x[1]+x[2]+x[3]
=10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值