C语言-函数学习

1.函数调用

我们需要用到自定义的函数的时候,就得调用它,那么在调用的时候就称之为函数调用。
在C语言中,函数调用的一般形式为:

函数名([参数]; 

[]中可以是常数,变量或其它构造类型数据及表达式,多个参数之间用逗号分隔。

2.有参与无参

在函数中不需要函数参数的称之为无参函数,在函数中需要函数参数的称之为有参函数。

有参和无参函数的一般形式如下:

在这里插入图片描述

3.形参与实参

函数的参数分为形参和实参两种。

  • 形参
    形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。

  • 形参特点:
    形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。
    形式参数有自己的内存空间,当函数被调用时才申请了该空间,才有了这个变量同时被赋值为实际参数的值。当函数执行结束后,该空间被内存管理单元自动回收。及释放空间

  • 实参
    实参是在调用时传递该函数的参数

  • 实参特点
    实参可以是常量、变量、表达式、函数等。
    无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值等办法使实参获得确定值。
    在参数传递时,实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配的错误。

4.函数的返回值

函数的返回值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。

函数的返回值要注意以下几点:

  • 函数的值只能通过return语句返回主调函数。
return 表达式   或者为:  return (表达式);
  • 函数值的类型和函数定义中函数的类型应保持一致。
    ps: 如果两者不一致,则以函数返回类型为准,自动进行类型转换。
  • 没有返回值的函数,返回类型为 void。

5.递归函数

递归就是一个函数在它的函数体内调用它自身。

执行递归函数将反复调用其自身,每调用一次就进入新的一层。
注意递归函数必须有结束条件
阶乘计算的应用:

#include <stdio.h>
#include <stdlib.h>

int digui(int num){

	int result;

	//越界判断!
	if(num >= 17){
		printf("越界,超出计算机计算位数\n");
		exit(-1);
	}
	if(num == 0){

		return 1;
	}else{

		return num*digui(num-1);
	}

}

int main(int argc, char const *argv[])
{
	int num;
	int result;
	printf("需要计算的阶乘:\n");
	scanf("%d",&num);
	result = digui(num);
	printf("%d 的阶乘为 %d\n",num,result);	
	return 0;
}

递归图解:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值