函数

本文详细介绍了函数的基本概念,包括函数原型、参数传递方式及如何使用return返回值。此外,还探讨了递归调用的概念及其优缺点,并举例说明如何在程序中实现递归。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

9.1函数概述

 函数是用于完成特定任务的程序代码的自包含单元。1.导致执行某些动作。2.返回一个值以供使用。

函数包括函数原型、函数调用和函数定义。

函数原型声明函数类型;调用前要声明,函数定义通常放在最后。

9.1.1函数参数

函数原型中定义的参数是形式参数,是局部变量,是函数私有的,不同的函数可以定义相同的函数名。

9.1.2带参数函数原型声明

9.1.3调用带有参数的函数:实际参数

形式参数是被调函数中的变量,而实际参数是调用函数分配给被调函数变量的特定数值。

因为只是值的复制,所以不管在被调函数中进行什么操作,调用函数中的原数值不会受到任何影响。

9.1.4使用return从函数中返回一个值

9.1.5函数类型

函数类型应和返回值类型相同。无返回值的函数应该被声明为void类型。早期函数不声明类型会默认为int,C99不

再支持这种形式。ANSI要求在函数声明中说明参数类型。

9.1.6无参数和不确定参数

ANSI C要求没有参数时使用void,还可以用省略号表示参数个数是不定的。

9.2递归

C允许一个函数调用其本身,这种调用过程被称作递归。必须设定终止递归的条件检测,否则会无限制进行递归。

递归有时可替代循环,但效率不如循环高。

9.2.3尾递归

把递归调用语句放在函数结尾即恰在return语句之前,称为尾递归。

9.2.4递归和反向计算

处理一个十进制转二进制的问题。

递归的优点是对于某些问题提供了简单的解决办法,缺点消耗内存很快。

9.3多源代码文件程序的编译

(1)Unix下

cc file1.c file2.c把两个文件编译到一起生成一个可执行文件,如果改变了1个,可以用cc file1.c file2.c链接到第二个目标代码。

(2)Linux下

与Unix一样,编译器是gcc

(3)DOS下

与Unix一样,不过目标文件是.obj

(4)Windows下

把多个文件加到一个工程下

9.4头文件的使用

如果main函数在一个文件中,函数在另一个文件中,这时把函数声明放在头文件中,在main中就不用声明函数原型了,直接include头文件即可。

9.5地址运算符:&

普通的函数调用实参传递给行参的只是数值,不能影响到实参的改变。

指针是一个其数值为地址的变量。指针变量的数值表示的是地址。

间接运算符*,取该地址中的值。&表示取某个变量的地址。

指针声明:类型 * 指针名

指针输出格式:%p

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值