C语言复习(函数)

小知识点:

一个源程序文件时一个编译单位,在程序编译时是以源程序文件为单位进行编译的,而不是以函数为单位进行编译的。

所有函数都是平行的,即在定义函数时是分别进行的,是相互独立的。一个函数并不从属于另一个函数,即函数不能嵌套定义。函数间可以互相调用,但不能调用main函数。main函数是被操作系统调用的。

从用户使用的角度看,函数有两种:

①库函数(通过引用头文件直接调用)②自定义函数(需要自己写出来的函数,解决特定问题而定义的函数)

从函数的形式上看函数也有两种:

①无参函数②有参函数

 

实参和形参之间的数据传递:

在调用函数的过程中,系统会把实参的值传递给被调用函数的形参。或者说,形参从实参中得到一个值。该值在函数调用期间有效,可以参加该函数的运算。

 

7.3.3节 函数调用的过程

不调用函数,则函数的形参不占用内存,只有在调用了函数时,系统才会给形参临时分配内存单元。

实参向形参的数据传递是“值单向”,单向传递,只能由实参传给形参,而不能由形参传给实参。实参和形参在内存中占有不同的存储单元,实参无法得到形参的值。

 

函数的定义和声明不是同一回事。

声明是为了给系统进行对照检查,而函数定义则是包含了整个函数首部和函数体。

定义函数需要包括以下内容

1.指定函数的名字

2.指定函数的类型(返回值的类型)

3.指定函数的参数的名字和类型,以便在调用函数时向它们传递数据。(无参函数忽略)

4.编写函数的函数体。

递归-求阶乘

#include <stdio.h>
#include <assert.h>
//阶乘
int JC_Func(int x)
{
	assert(x >= 0);
	if(x > 0)
		return x * JC_Func(x-1);
	else if(x == 0)
		return 1;
}

int main()
{
	//复习一下函数
	int n;
	scanf("%d" , &n);
	printf("%d! = %d\n", n ,JC_Func(n));
	return 0;
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值