函数函数(Function)是功能抽象的模块
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中山大学地球科学系 黄康有 2010
精选ppt
4.1 函数的定义
函数定义
// 求圆柱体体积 # include <iostream.h> double volume ( double radius, double height ) { return 3.14 * radius * radius * height ; } void main() { double vol, r, h ;
加表达式的运算。C=2*max(a,b) 3 函数参数:函数调用作为一个函数的实参。m=max(a,max(a,b));
中山大学地球科学系 黄康有 2010
4.4 函数调用
例3-1
#include<iostream.h> void printmessage ()
{ cout << "How do you do!" << endl ; } void main() { printmessage() ; }
中山大学地球科学系 黄康有 2010
3.1.2 函数调用
4.4 函数调用
例3-1
#include<iostream.h> void printmessage ()
{ cout << "How do you do!" << endl ;
函数调用语句
{ return 3.14 * radius * radius * height ; }
void main()
{ double vol, r, h ;
cin >> r >> h ;
vol = volume ( r, h ) ;
cout << "Volume = " << vol << endl ;
}
中山大学地球科学系 黄康有 2010
4.4 函数的调用
按函数在语句中的作用来分,可以有以下3种函数调用方式: 1 函数语句:把函数调用单独作为一个语句,并不要求函数带回一个值,只
是要求函数完成一定的操作。printstar(); 2 函数表达式:函数出现在一个表达式中,要求函数带回一个确定的值以参
4.2 函数定义和参数
3.1.1 函数定义
函数定义形式
类型 函数名 ( 形式参数表 )
{
语句序列
}
函数头——函数接口,包括:
函数返回值类型
函数体中由 return 语句返回的值的类型。没有 返回值其类型为void
函数名
用户定义标识符
中山大学地球科学系 黄康有 2010
4.2 函数定义和参数
3.1.1 函数定义
4.2 函数定义
例3-2
double max ( double x , double y ) { if ( x > y )
return x ; else
return y ; }
3.1.1 函数定义
函数体
中山大学地球科学系 黄康有 2010
4.2 函数定义
3.1.1 函数定义
例3-2
double max ( double x , double y )
第4章 函数
➢ 函数(Function)是功能抽象的模块 参数
输入流
函数
中山大学地球科学系 黄康有 2010
返回值
精选ppt
输出流
第4章 函数
➢ 函数(Function)是功能抽象的模块 ➢ 函数作用 —— 实现一个功能;代码重用 ➢ 函数是C++程序的重要组件
一个程序文件可以包含若干个函数,无论把一个程序 划分为多少个程序模块,只能有一个main函数。
cin >> r >> h ; vol = volume ( r, h ) ; cout << "Volume = " << vol << endl ; }
中山大学地球科学系 黄康有 2010
精选ppt
ห้องสมุดไป่ตู้
4.1 函数的定义
// 求圆柱体体积 # include <iostream.h> double volume ( double radius, double height ) { return 3.14 * radius * radius * height ; } 函数调用 void main() { double vol, r, h ;
cin >> r >> h ; vol = volume ( r, h ) ; cout << "Volume = " << vol << endl ; }
中山大学地球科学系 黄康有 2010
精选ppt
4.2 函数参数
函数定义形式
类型 函数名 ( void )
{
语句序列
}
类型 函数名 ( 形式参数表 )
中山大学地球科学系 黄康有 2010
4.2 函数定义
函数定义形式
类型 函数名 ( 形式参数表 )
{
语句序列
}
函数头——函数接口
函数体——函数的实现代码。
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
4.2 函数定义
例3-1
void printmessage ( ) { cout << "How do you do!" << endl ; }
{
语句序列
}
3.1.1 函数定义
无参函数 有参函数
形式参数和实际参数
形式参数:在定义函数时函数名后面括号中的变量名称为形式参数 实际参数:在主函数中调用一个函数时,函数后面括号中的参数
中山大学地球科学系 黄康有 2010
4.2 函数定义和参数
函数定义形式
类型 函数名 ( 形式参数表 )
{
语句序列
}
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
4.2 函数定义
例3-1
void printmessage ( ) { cout << "How do you do!" << endl ; }
函数返回值类型 无返回值
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
4.2 函数定义
根据函数的形式: 无参函数:调用函数时,不必给出参数 有参函数:在调用函数时,要给出参数
中山大学地球科学系 黄康有 2010
4.1 函数的定义
➢ 函数定义由两部分组成:函数首部和函数操作描述
// 求圆柱体体积
# include <iostream.h>
double volume ( double radius, double height )
函数定义形式
类型 函数名 ( 形式参数表 )
{
语句序列
}
函数头——函数接口,包括:
函数返回值类型
函数体中由 return 语句返回的值的类型。没有 返回值其类型为void
函数名
用户定义标识符
形式参数表
逗号分隔的参数说明表列,缺省形式参数时不
能省略圆括号。一般形式为:
类型 参数1 ,类型 参数2 ,… ,类型 参数n
Type Obj expression
➢ Type 可以为各种C++基本数据类型、类类型,以及这些类型 的指针或引用
中山大学地球科学系 黄康有 2010
(1) 函数的返回值是通过函数中的return语句获得的。 return语句将被调用函数中的一个固定值带回主函数中。
(2)函数值的类型。既然函数有返回值,这个值的类型 由定义函数时指定函数值的类型来确定。
函数头——函数接口,包括:
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
4.2 函数定义和参数
3.1.1 函数定义
函数定义形式
类型 函数名 ( 形式参数表 )
{
语句序列
}
函数头——函数接口,包括:
函数返回值类型
函数体中由 return 语句返回的值的类型。没有 返回值其类型为void
中山大学地球科学系 黄康有 2010
例3-1
void printmessage ( ) { cout << "How do you do!" << endl ; }
函数名
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
4.2 函数定义
例3-1
3.1.1 函数定义
void printmessage ( ) { cout << "How do you do!" << endl ; }
(3)如果函数值的类型和return语句中的表达式的值不一 致,则以函数类型为准,即函数类型决定返回值的类型。
中山大学地球科学系 黄康有 2010
4.4 函数的调用
调用形式
函数名 ( 实际参数表列 )
3.1.2 函数调用
如果调用无参函数,则“实际参数表列”可以 没有,但括号不能省略。如果实参表列包括多 个多个参数,则各参数间用逗号隔开。实参和 形参的个数应该相等,类型匹配或者赋值兼容, 顺序一一对应进行传递数据。
函数名
}
中山大学地球科学系 黄康有 2010
3.1.1 函数定义
4.2 函数定义
例3-2
double max ( double x , double y ) { if ( x > y )
return x ; else
return y ; }
形式参数表
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
中山大学地球科学系 黄康有 2010
4.4 函数的调用
调用形式
函数名 ( 实际参数表 )
函数名 函数的入口地址
3.1.2 函数调用
中山大学地球科学系 黄康有 2010
4.4 函数的调用
调用形式
函数名 ( 实际参数表 )
3.1.2 函数调用
函数名 函数的入口地址 实际参数表 与形式参数必须在个数、类型、位置一一对应
{ if ( x > y ) return x ;
else return y ;
return 语句形式: return 表达式
或 return (表达式 ) 作用:
}
• 返回函数值
返回值
• 不再执行后续语句,程序控制返回调用点
一个函数体内可以有多个return 语句
• 表达式 返回值的类型与函数类型不相同时,
中山大学地球科学系 黄康有 2010
精选ppt
初步的认识
1 定义printstar和print_message函数时,括号内的void表示“没有参数函数”,即 调用此函数时不必也不能给出参数。 2 程序的执行从main函数开始,调用其他函数后流程回到main函数,最后在main 函数中结束整个程序的运行。 3 所有函数都是平行的,即在定义函数时是相互独立的。但函数不能嵌套定义, 也即在定义一个函数过程中不能又定义另外一个函数,同时也不能把函数的定义 部分写在主函数中。 4 main可以调用其他函数,各个函数之间可以互相调用,但不能调用main函数。 5 main函数所调用的函数,前面必须进行声明。
例3-2
double max ( double x , double y ) { if ( x > y )
return x ; else
return y ; }
中山大学地球科学系 黄康有 2010
3.1.1 函数定义
4.2 函数定义
例3-2
double max ( double x , double y )
{ if ( x > y )
return x ;
else return y ;
函数返回值类型
}
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
4.2 函数定义
例3-2
double max ( double x , double y )
{ if ( x > y )
return x ;
else return y ;
自动强制转换成函数的类型
中山大学地球科学系 黄康有 2010
(1)在定义函数时指定的形参,在未出现函数调用时,他们并 不占内存中的存储单元,(所以称他们为形式参数或虚拟参 数),表示他们并不是实际存在的数据。只有在发生函数调用 时,函数中的形参才被分配内存单元,以便接受从实参传来的 数据。在调用结束后,形参所占的内存单元也被释放。 (2)实参可以是常量,变量或表达式。 (3)定义函数时,必须在函数首部指定形参的类型。 (4)实参与形参的类型应相同或赋值兼容。如果两者不相同, 则按照赋值的规则进行转换。 (5)实参变量对形参变量的数据传递时“值传递”,即单向传 递,只有实参传给形参,而不能又形参传回给实参。
中山大学地球科学系 黄康有 2010
4.3 函数的返回值
3.2.4 函数的返回类 型
➢ 函数通过匿名对象返回结果值 ➢ 函数值的类型是匿名对象的类型 ➢ return 语句把表达式的值赋给匿名对象
Type FunctionName () { // statements
return expression ; }
形式参数表 无参数
中山大学地球科学系 黄康有 2010
4.2 函数定义
例3-1
void printmessage ( ) { cout << "How do you do!" << endl ; }
3.1.1 函数定义
函数体 无 return 语句
中山大学地球科学系 黄康有 2010
4.2 函数定义
精选ppt
4.1 函数的定义
函数定义
// 求圆柱体体积 # include <iostream.h> double volume ( double radius, double height ) { return 3.14 * radius * radius * height ; } void main() { double vol, r, h ;
加表达式的运算。C=2*max(a,b) 3 函数参数:函数调用作为一个函数的实参。m=max(a,max(a,b));
中山大学地球科学系 黄康有 2010
4.4 函数调用
例3-1
#include<iostream.h> void printmessage ()
{ cout << "How do you do!" << endl ; } void main() { printmessage() ; }
中山大学地球科学系 黄康有 2010
3.1.2 函数调用
4.4 函数调用
例3-1
#include<iostream.h> void printmessage ()
{ cout << "How do you do!" << endl ;
函数调用语句
{ return 3.14 * radius * radius * height ; }
void main()
{ double vol, r, h ;
cin >> r >> h ;
vol = volume ( r, h ) ;
cout << "Volume = " << vol << endl ;
}
中山大学地球科学系 黄康有 2010
4.4 函数的调用
按函数在语句中的作用来分,可以有以下3种函数调用方式: 1 函数语句:把函数调用单独作为一个语句,并不要求函数带回一个值,只
是要求函数完成一定的操作。printstar(); 2 函数表达式:函数出现在一个表达式中,要求函数带回一个确定的值以参
4.2 函数定义和参数
3.1.1 函数定义
函数定义形式
类型 函数名 ( 形式参数表 )
{
语句序列
}
函数头——函数接口,包括:
函数返回值类型
函数体中由 return 语句返回的值的类型。没有 返回值其类型为void
函数名
用户定义标识符
中山大学地球科学系 黄康有 2010
4.2 函数定义和参数
3.1.1 函数定义
4.2 函数定义
例3-2
double max ( double x , double y ) { if ( x > y )
return x ; else
return y ; }
3.1.1 函数定义
函数体
中山大学地球科学系 黄康有 2010
4.2 函数定义
3.1.1 函数定义
例3-2
double max ( double x , double y )
第4章 函数
➢ 函数(Function)是功能抽象的模块 参数
输入流
函数
中山大学地球科学系 黄康有 2010
返回值
精选ppt
输出流
第4章 函数
➢ 函数(Function)是功能抽象的模块 ➢ 函数作用 —— 实现一个功能;代码重用 ➢ 函数是C++程序的重要组件
一个程序文件可以包含若干个函数,无论把一个程序 划分为多少个程序模块,只能有一个main函数。
cin >> r >> h ; vol = volume ( r, h ) ; cout << "Volume = " << vol << endl ; }
中山大学地球科学系 黄康有 2010
精选ppt
ห้องสมุดไป่ตู้
4.1 函数的定义
// 求圆柱体体积 # include <iostream.h> double volume ( double radius, double height ) { return 3.14 * radius * radius * height ; } 函数调用 void main() { double vol, r, h ;
cin >> r >> h ; vol = volume ( r, h ) ; cout << "Volume = " << vol << endl ; }
中山大学地球科学系 黄康有 2010
精选ppt
4.2 函数参数
函数定义形式
类型 函数名 ( void )
{
语句序列
}
类型 函数名 ( 形式参数表 )
中山大学地球科学系 黄康有 2010
4.2 函数定义
函数定义形式
类型 函数名 ( 形式参数表 )
{
语句序列
}
函数头——函数接口
函数体——函数的实现代码。
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
4.2 函数定义
例3-1
void printmessage ( ) { cout << "How do you do!" << endl ; }
{
语句序列
}
3.1.1 函数定义
无参函数 有参函数
形式参数和实际参数
形式参数:在定义函数时函数名后面括号中的变量名称为形式参数 实际参数:在主函数中调用一个函数时,函数后面括号中的参数
中山大学地球科学系 黄康有 2010
4.2 函数定义和参数
函数定义形式
类型 函数名 ( 形式参数表 )
{
语句序列
}
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
4.2 函数定义
例3-1
void printmessage ( ) { cout << "How do you do!" << endl ; }
函数返回值类型 无返回值
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
4.2 函数定义
根据函数的形式: 无参函数:调用函数时,不必给出参数 有参函数:在调用函数时,要给出参数
中山大学地球科学系 黄康有 2010
4.1 函数的定义
➢ 函数定义由两部分组成:函数首部和函数操作描述
// 求圆柱体体积
# include <iostream.h>
double volume ( double radius, double height )
函数定义形式
类型 函数名 ( 形式参数表 )
{
语句序列
}
函数头——函数接口,包括:
函数返回值类型
函数体中由 return 语句返回的值的类型。没有 返回值其类型为void
函数名
用户定义标识符
形式参数表
逗号分隔的参数说明表列,缺省形式参数时不
能省略圆括号。一般形式为:
类型 参数1 ,类型 参数2 ,… ,类型 参数n
Type Obj expression
➢ Type 可以为各种C++基本数据类型、类类型,以及这些类型 的指针或引用
中山大学地球科学系 黄康有 2010
(1) 函数的返回值是通过函数中的return语句获得的。 return语句将被调用函数中的一个固定值带回主函数中。
(2)函数值的类型。既然函数有返回值,这个值的类型 由定义函数时指定函数值的类型来确定。
函数头——函数接口,包括:
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
4.2 函数定义和参数
3.1.1 函数定义
函数定义形式
类型 函数名 ( 形式参数表 )
{
语句序列
}
函数头——函数接口,包括:
函数返回值类型
函数体中由 return 语句返回的值的类型。没有 返回值其类型为void
中山大学地球科学系 黄康有 2010
例3-1
void printmessage ( ) { cout << "How do you do!" << endl ; }
函数名
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
4.2 函数定义
例3-1
3.1.1 函数定义
void printmessage ( ) { cout << "How do you do!" << endl ; }
(3)如果函数值的类型和return语句中的表达式的值不一 致,则以函数类型为准,即函数类型决定返回值的类型。
中山大学地球科学系 黄康有 2010
4.4 函数的调用
调用形式
函数名 ( 实际参数表列 )
3.1.2 函数调用
如果调用无参函数,则“实际参数表列”可以 没有,但括号不能省略。如果实参表列包括多 个多个参数,则各参数间用逗号隔开。实参和 形参的个数应该相等,类型匹配或者赋值兼容, 顺序一一对应进行传递数据。
函数名
}
中山大学地球科学系 黄康有 2010
3.1.1 函数定义
4.2 函数定义
例3-2
double max ( double x , double y ) { if ( x > y )
return x ; else
return y ; }
形式参数表
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
中山大学地球科学系 黄康有 2010
4.4 函数的调用
调用形式
函数名 ( 实际参数表 )
函数名 函数的入口地址
3.1.2 函数调用
中山大学地球科学系 黄康有 2010
4.4 函数的调用
调用形式
函数名 ( 实际参数表 )
3.1.2 函数调用
函数名 函数的入口地址 实际参数表 与形式参数必须在个数、类型、位置一一对应
{ if ( x > y ) return x ;
else return y ;
return 语句形式: return 表达式
或 return (表达式 ) 作用:
}
• 返回函数值
返回值
• 不再执行后续语句,程序控制返回调用点
一个函数体内可以有多个return 语句
• 表达式 返回值的类型与函数类型不相同时,
中山大学地球科学系 黄康有 2010
精选ppt
初步的认识
1 定义printstar和print_message函数时,括号内的void表示“没有参数函数”,即 调用此函数时不必也不能给出参数。 2 程序的执行从main函数开始,调用其他函数后流程回到main函数,最后在main 函数中结束整个程序的运行。 3 所有函数都是平行的,即在定义函数时是相互独立的。但函数不能嵌套定义, 也即在定义一个函数过程中不能又定义另外一个函数,同时也不能把函数的定义 部分写在主函数中。 4 main可以调用其他函数,各个函数之间可以互相调用,但不能调用main函数。 5 main函数所调用的函数,前面必须进行声明。
例3-2
double max ( double x , double y ) { if ( x > y )
return x ; else
return y ; }
中山大学地球科学系 黄康有 2010
3.1.1 函数定义
4.2 函数定义
例3-2
double max ( double x , double y )
{ if ( x > y )
return x ;
else return y ;
函数返回值类型
}
3.1.1 函数定义
中山大学地球科学系 黄康有 2010
4.2 函数定义
例3-2
double max ( double x , double y )
{ if ( x > y )
return x ;
else return y ;
自动强制转换成函数的类型
中山大学地球科学系 黄康有 2010
(1)在定义函数时指定的形参,在未出现函数调用时,他们并 不占内存中的存储单元,(所以称他们为形式参数或虚拟参 数),表示他们并不是实际存在的数据。只有在发生函数调用 时,函数中的形参才被分配内存单元,以便接受从实参传来的 数据。在调用结束后,形参所占的内存单元也被释放。 (2)实参可以是常量,变量或表达式。 (3)定义函数时,必须在函数首部指定形参的类型。 (4)实参与形参的类型应相同或赋值兼容。如果两者不相同, 则按照赋值的规则进行转换。 (5)实参变量对形参变量的数据传递时“值传递”,即单向传 递,只有实参传给形参,而不能又形参传回给实参。
中山大学地球科学系 黄康有 2010
4.3 函数的返回值
3.2.4 函数的返回类 型
➢ 函数通过匿名对象返回结果值 ➢ 函数值的类型是匿名对象的类型 ➢ return 语句把表达式的值赋给匿名对象
Type FunctionName () { // statements
return expression ; }
形式参数表 无参数
中山大学地球科学系 黄康有 2010
4.2 函数定义
例3-1
void printmessage ( ) { cout << "How do you do!" << endl ; }
3.1.1 函数定义
函数体 无 return 语句
中山大学地球科学系 黄康有 2010
4.2 函数定义