第六章 模块化程序设计:函数
一、概述
1.什么是函数
2.为什么要定义函数
3.怎样定义函数
二、函数调用
1.调用形式
2.数据传递
3.函数声明和函数原型
一、概述
1.什么是函数
函数就是功能,每一个函数用来实现一个特定的功能,函数的名字反应其代表的功能。
2.为什么要定义函数
C语言要求程序中出现的函数和数据先定义后使用,为了让编译系统识别自定义函数,需要定义函数。
3.怎样定义函数
(1)定义内容:函数名、返回值类型、参数名字和参数类型、函数功能
(2)无参函数
类型名 函数名()
{
函数体
}
(2)有参函数
类型名 函数名(参数类型 参数名)
{
函数体
}
二、函数调用
1.调用形式
一般形式:函数名(实参列表)
例
max(5 , 8) ;/*max是自定义的比较大小函数,返回两个整数中大的一个*/
(1)函数调用语句
把函数调用单独作为一个语句,不要求其有返回值
print(“hello world”) ;
(2)函数表达式
函数调用出现在另一个表达式中,此事要求函数带回一个确定的值以参加表达式的运算。
x=max(5 , 8) * 9 ;
(3)函数参数
把函数调用作为另外一个函数调用的实参。
max(max(5,8),9);
2.数据传递
(1)形式参数和实际参数
调用有参函数是,主调函数和被调用函数之间有数据传递关系,在定义函数时函数名后面括号中的变量名称为形式参数或虚拟参数(形参),主调函数中调用一个函数式,函数名后面括号中的参数称为实际参数(实参)。实际参数可以使常量、变量或表达式。
(2)函数调用的过程
执行函数调用语句->给形参分配内存单元->将实参的值赋给形参->执行相关功能->
将return语句的值返回给主调函数->释放形参的内存
(3)形参和实参的关系
在不以指针或引用形式传值时,形参和实参时值传递的关系,在内存中占有不同的内存单元,实参无法得到形参的值。
如果需要将形参的值存储在实参中,可以采用指针、引用或者返回值的方法。
3.函数声明和函数原型
(1)调用函数的条件:被调函数已经定义,并已将相关库函数引用。
(2)函数声明
在main函数之前或外部文件中的函数声明语句,用于通知编译系统将执行的操作。如果将main函数放在函数定义之后,则无需声明。
(3)函数原型
是函数的首航或者首部,便于编译系统对函数调用的合法性进行检查
参考资料:
[M]谭浩强.C程序设计.清华大学出版社,2017