您的位置:首页 > 编程语言 > C语言/C++

C++学习 【4.1】 利用函数实现指定的功能---函数,函数的形式,函数参数

2016-01-22 10:11 525 查看
学习《C++程序设计》(第二版) 谭浩强 主编

第四章 利用函数实现指定的功能

4.1 为什么需要函数

4.2 定义函数的一般形式

4.3 函数参数和函数的值

4.1 为什么需要函数

一般一个较大的程序划分为若干个程序模块,每一个模块实现一部分功能

编译时分别编译,通过后,进行连接,把各模块的目标文件以及系统文件连接在一起形成可执行文件

无论把一个程序划分为多少个程序模块,只能有一个main函数

程序总是从main函数开始执行的

在程序运行过程中,由主函数调用其他函数,其他函数也可以互相调用

在C语言中没有类和对象,在程序模块汇中直接定义函数

C程序的主要部分是函数,C被认为是面向函数的语言

在C++面向对象的程序设计中主函数以外的函数大多是被封装在类中的

主函数或其他函数可以通过类对象调用类中的函数

在实际应用的程序中,主函数写的很简单,它的作用就是调用各个函数,程序各部分的功能主要都是由各函数实现的

主函数相当于总调度,调动各函数依次实现各项功能

所有函数都是平行的,即在定义函数时是相互独立的

一个函数并不从属于另一个函数,即函数不能嵌套定义

也就是不能在定义一个函数的过程中又定义另一个函数,也不能把函数的定义部分写在主函数里

函数分类:

从用户使用的角度看:

系统函数(库函数) 和 用户自己定义的函数

从函数的形式看:

无参函数:调用函数不必给出参数,在调用时,主调函数并不将数据传送给被调用函数,一般用来执行一组固定的操作

有参函数:在主调函数和被调函数之间有数据传递

4.2 定义函数的一般形式

4.2.2 定义无参函数的一般形式

类型名 函数名([void])

{声明部分

语句

}

专业人员一般不省略括号里的void

4.2.3 定义有参函数的一般形式

类型名 函数名(形式参数表列)

{声明部分

语句

}

在C语言中规定,如果在定义函数时不指定函数类型,系统会隐含指定函数类型为int型
但C++取消了这一规定,要求在定义函数时必须制定函数的类型,这样做更加安全和严格

4.3 函数参数和函数的值

4.3.1 形式参数和实际参数

形式参数(formal parameter):在定义函数时函数名后面括号里的变量名称

实际参数(actual parameter):在主调函数中调用一个函数时,函数名后面括号中的参数(可以是一个表达式)

在定义函数时指定的形参,在未出现函数调用时,他们并不占内存中的存储单元,因此称它们为形式参数或虚拟参数

表示他们并不是实际存在的数据,只是在发生函数调用时,函数中的形参才被分配内存单元

在调用结束后,形参所占的内存单元也被释放

实参和形参的类型应相同或者赋值兼容

如果实参为整型而形参为实型,或者相反,则按不同类型数值的赋值规则进行转换

字符型和整型可以相互通用

实参变量对形参变量的数据传递是值传递,即单向传递,只由实参传给形参,而不能由形参传回给实参

4.3.2 函数的返回值

通过函数的调用使主调函数能得到一个确定的函数值,这就是函数的返回值

说明:

1、函数的返回值是通过函数中的return语句获得的

2、如果需要从被调用函数带回一个函数值(供主调函数使用),被调用函数中必须包含return语句

如果不需要从被调函数带回函数值,则可以不要return语句

3、一个函数汇总可以有一个以上的return语句,执行到哪一个return语句,哪一个语句就起作用

4、return语句后面的括号可以要,也可以不要,后面的值可以是一个表达式

5、如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准,即函数类型决定返回值的类型

5、对数值型函数,可以自动进行类型转换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: