黑马程序员技术交流社区

标题: C语言--函数 [打印本页]

作者: Jack-xie    时间: 2014-10-17 09:17
标题: C语言--函数
1)函数的概述

C源程序是 。虽然在前面各章的程序中大都只有一个主函数main(),但实用程序往往由 多个函数组成。 ,通过对函数模块的调用实现特定的功能。

C语言不仅提供了极为丰富的库函数(如Turbo C,MS C都提供了三百多个库函数),还允许用户建 立自己定义的函数。用户可把自己的算法编成一个个相对独立的函数模块,然后用调用的方法来使用函 数。可以说C程序的全部工作都是由各式各样的函数完成的,所以也把C语言称为函数式语言。

2)函数的分类

在C语言中可从不同的角度对函数分类。

1) 从函数定义的角度看,函数可分为库函数和用户定义函数两种。

2) 语言的函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值 函数和无返回值函数两种。

3) 从主调函数和被调函数之间数据传送的角度看又可分为无参函数和有参函数两种。

4)main 函数是主函数,它可以调用其它函数,而不允许被其它函数调用。因此,C程序的执行总是从main函 数开始,完成对其它函数的调用后再返回到main函数,最后由main函数结束整个程序。一个C源程序必须 有,也只能有一个主函数main。

2、函数的定义

1)无参无返回值 一般形式如下:

        void 函数名(){
                声明部分 //定义局部变量

                语句

        }

Void 无返回值函数:此类函数用于完成某项特定的处理任务,执行完后不向调用者返回执行 结果,这类函数类似于其他语言的过程;由于函数无返回值,用户在定义此类函数时可指定其 函数返回值为“空类型”

2)有参无返回值

一般形式如下:

        void 函数名(形式参数表列){

                声明部分

                语句

        }

形式参数表列表的格式: i类型 变量名,类型 变量2,.......

3)无参有返回值函数定义

一般形式如下:

                返回值类型 函数名(){

                        声明部分

                        语句
                        return 返回值类型变量或常量;  //返回给主调函数

                }

其中返回值类型和函数名称为函数头。
返回值类型指明了本函数的返回值类型。函数名是由用户定义的标识符,函数名后有一个空括
号,其中无参数,但括号不可少。
{}中的内容称为函数体。在函数体中声明部分,是对函数体内部所用到的变量的类型说明。

4)有参有返回值函数定义 一般形式如下:

                返回值类型 函数名(形式参数表列){

                        声明部分

                        语句

                        return 返回值类型变量或常量;

                }

有参函数比无参函数多了一个内容,即形式参数表列。在形参表中给出的参数称为形式参数,
它们可以是各种类型的变量,各参数之间用逗号间隔。在进行调用时,主函数将赋予这些形式参数实际的值。行参既然是变量,必须在行参表中给出行参的类型说明。
3、函数参数

函数的参数分为形参和实参两种。在此,进一步介绍形参、实参的特点和两者的关系。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用 。
1)形式参数
定义函数的时候,函数名后面小括号中的参数,简称形参

形式参数是什么样类型的数据,那么实际参数也必须是什么样的类型

函数内部不可以定义与函数形参同名的变量,因为形参与函数的代码是一个代码块
2)实际参数
调用函数的时候,函数名后面小括号中的参数,简称实参
实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数值的传递。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。
3)函数形参和实参的特点
1)形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。
2)实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。
3)实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。

4、函数的返回值

1)概念

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

2)注意点

1) 函数的值只能通过return语句返回主调函数。return语句的一般形式为:

        return 表达式;

或者为:

        return (表达式);

   该语句的功能是计算表达式的值,并返回给主调函数。在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。
2) 函数值的类型和函数定义中函数的类型应保持一致。如果两者不一致,则以函数类型为准,自动进行类型转换。

3) 如函数值为整型,在函数定义时可以省去类型说明。

也就是说如果没有指定返回类型,那么C语言默认是int的类型(开发中不要省略返回值类型)

4) 不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。

为了使程序有良好的可读性并减少出错, 凡不要求返回值的函数都应定义为空类型。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2