C语言入门之函数(1),第1张

C语言入门之函数(1),第2张

摘要

正如第一章已经介绍的,C源程序是由函数组成的。虽然在前几章的程序中只有一个主函数main(),但实用程序通常由多个函数组成。函数是C源程序的基本模块,通过调用函数模块实现特定的功能。C语言中的函数相当于其他高级语言中的子程序。C语言不仅提供了非常丰富的库函数(如Turbo C和MS C都提供了300多个库函数),还允许用户建立自己定义的函数。用户可以将自己的算法编译成相对独立的功能模块,然后通过调用来使用功能。

可以说C程序的所有工作都是由各种函数来完成的,所以C语言也叫函数式语言。由于功能模块结构,C语言很容易实现结构化编程。使程序的层次结构清晰,便于编程、阅读和调试。资料来源:www.examda.com

在C语言中,函数可以从不同的角度进行分类。

1.从函数定义的角度来看,函数可以分为库函数和自定义函数。

(1)图书馆功能

由C系统提供,用户不需要定义,也不需要在程序中做类型描述。他们只需要程序之前包含这个函数原型的头文件就可以在程序中直接调用了。重复使用printf、scanf、getchar、putchar、gets、puts、strcat等函数。前几章中的例子都属于这一类。

(2)用户自定义函数

用户根据需要编写的函数。对于自定义函数,不仅需要在程序中定义函数本身,还需要在主功能模块中指定被调用函数的类型才能使用。

2.C语言中的函数既有其他语言中的函数又有过程。从这个角度来看,函数可以分为两种:有返回值的函数和没有返回值的函数。

(1)具有返回值的函数

这类函数被调用执行后,会返回一个执行结果给调用者,这个结果叫做函数返回值。如数学函数,就属于这类函数。返回函数值的用户定义函数必须在函数定义和函数说明中指定返回值的类型。

(2)没有返回值的函数

这种函数是用来完成一个特定的处理任务的,在执行后不把函数值返回给调用者。这种功能类似于其他语言的过程。由于函数不需要返回值,用户可以指定其返回的类型为“空”,定义这样的函数时,type 空的说明符为“void”。

3.从调用函数和调优函数之间的数据传递来看,可以分为非参数函数和参数函数两种。

(1)无参数函数

函数定义、函数描述和函数调用中没有参数。主调函数和被调函数之间没有参数传递。这种函数通常用来完成一组指定的函数,可以返回也可以不返回。

(2)参数函数

也称为带参数的函数。函数定义和函数描述中都有参数,称为形式参数(简称形式参数)。调用函数时,也必须给定参数,这种参数称为实际参数(简称实参)。当调用一个函数时,调用函数会将实参的值传递给形参,供被调用函数使用。

4.c语言提供了丰富的库函数,从函数的角度可以分为以下几类。

(1)字符类型分类功能

用于根据ASCII码对字符进行分类:字母、数字、控制字符、分隔符、大小写字母等。

(2)转换功能

用于字符或字符串的转换;在字符和各种数字量(整数、实数等)之间转换。);在大写和小写之间转换。

(3)目录路径功能

用于文件目录和路径操作。

(4)诊断功能

用于内部错误检测。

(5)图形功能

用于屏幕管理和各种图形功能。

(6)投入产出函数

用于完成输入和输出功能。

(7)接口功能

与DOS,BIOS和硬件接口。

(8)字符串函数

用于字符串操作和处理。

(9)内存管理功能

用于内存管理。

(10)数学函数

用于数学函数计算。

(11)日期和时间功能

用于日期和时间转换。

(12)过程控制功能

用于过程管理和控制。

(13)其他功能

用于各种其他功能。

以上功能不仅数量众多,而且有些还需要硬件知识才能使用,要全部掌握需要一个漫长的学习过程。首先要掌握一些最基本最常用的功能,然后逐步深化。由于篇幅所限,本书只介绍了几个库函数,其余读者可以根据需要查阅相关手册。

还需要指出的是,在C语言中,所有的函数定义,包括主函数main,都是并行的。也就是说,在一个函数体中,不能定义另一个函数,也就是不能嵌套。但是函数是允许互相调用的,嵌套调用也是允许的。习惯上称调用者为主音函数。函数也可以调用自己,这叫递归调用。主函数就是主函数,不被其他函数调用也能调用其他函数。所以C程序的执行总是从主函数开始,调用其他函数后返回主函数,最后主函数结束整个程序。一个C源程序必须只有一个主函数,main。

函数定义的一般形式

1.无参数函数的一般形式

类型说明符函数名()
{
类型描述
语句
}

其中类型说明符和函数名是函数头。类型说明符表示这个函数的类型,实际上就是函数返回值的类型。这个类型说明符与第2章中介绍的所有类型的说明符是一样的。功能名称是由用户定义的标识符。函数名后面有空括号,这个括号里面没有参数,但是括号是必不可少的。{}中的内容称为函数体。函数体中也有类型描述,是函数体内部使用的变量的类型描述。在许多情况下,不要求参数函数有返回值。在这种情况下,函数类型符号可以写成void。

我们可以把它改成一个函数定义:

void Hello()
{
printf(" Hello,world \ n ");
}

这里只把main改成Hello作为函数名,其余不变。Hello函数是一个无参数函数,当被其他函数调用时,它输出一个Hello world字符串。

2.参数函数的一般形式

类型说明符函数名(形参表)

类型参数的类型说明
{
类型说明
语句
}

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C语言入门之函数(1)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情