下载此文档

《美学概论》复习题及参考答案.doc


文档分类:管理/人力资源 | 页数:约29页 举报非法文档有奖
1/29
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/29 下载此文档
文档列表 文档介绍
第四讲函数
电子科技大学2010秋季
2
函数的定义和声明
函数的定义
函数是一个命名的程序代码块,是程序完成其操作的场所,是将功能重复的程序段抽象出来所形成一个独立的、可重复使用的功能模块。
定义函数的一般格式为:
返回类型函数名(数据类型1 参数1, 数据类型2 参数2,... )
{
语句序列;
}
形参表
3
#include <iostream>
using namespace std;
int max(int x,int y)
{
int z;
z=(x>y)?x:y;
return z ;
}
void main()
{
int a,b;
cin>>a>>b;
cout<<max(a,b)<<endl;
}
5
6
7
8
9
10
11
12
13
14
15
16
17
18
函数定义
主函数
函数体:函数所完成的具体操作
运行结果:
5 15 ↙
15
4
函数的定义和声明
在C++程序中,使用函数前首先需要对函数原型进行声明,告诉编译器函数的名称、类型和形式参数。
在C++中,函数原型声明原则如下:
(1) 如果函数定义在先,调用在后,调用前可以不必声明; 如果函数定义在后,调用在先,调用前必须声明。
(2) 在程序设计中,为了使程序设计的逻辑结构清晰,一般 将主要的函数放在程序的起始位置声明,这样也起到了 列函数目录的作用。
5
声明函数原型的形式如下:
例如:
int max(int x,int y) ;
int max(int,int) ;
函数原型的声明
返回类型函数名(数据类型1 参数1, 数据类型2 参数2,... );
加上参数名会使函数的
功能和参数更清晰。
6
函数调用的一般形式为:

各实际参数表中的实际参数应与形参表中的形参一一对应,即个数相等且对应参数的数据类型相同。
函数调用是一个表达式,函数名连同括号是函数调用运算符。表达式的值是被调函数的返回值,它的类型是函数定义中指定的函数返回值的类型,即函数的类型。
如果函数的返回值为void,说明该函数没有返回值。
函数名(参数1, 参数2,... );
实际参数表
7
第一步:函数调用; ①将函数调用语句下一条语句的地址保存在一种称为“栈”的内存中空间中,以便函数调用完后返回。将数据放到栈空间中的过程称为压栈。
②对实参表从后向前,依次计算出实参表达式的值,并将值压栈。
③转跳到函数体处。
函数调用的执行过程
8
第二步:函数体执行,即逐条运行函数体中语句的过程。
④如果函数中还定义了变量,将变量压栈。
⑤将每一个形参以栈中对应的实参值取代,执行函数的功能体。
⑥将函数体中的变量、保存在栈中的实参值,依次从栈中取出,以释放栈空间。从栈中取出数据称为出栈,x出栈用pop(x)表示。
第三步:返回,即返回到函数调用表达式的位置。
⑦返回过程执行的是函数体中的return语句。
9

push(z)

max([bp
-
8],[bp
-
4
])
==>[bp
-
12
]

pop(z
)

pop(x
)

pop(y
)

jump(
pop( ))
...

push(100B
0A43)

push(b)

push(a)

jump
100B0000
100B
0A43
:
100B0000:
bp
-
12:
bp
-
8:
bp
-
4:
bp :
z
a
b
100B
0
A
43
max()
功能体
max()
定义部分
max()
执行码
调用
max(a, b)
执行代码内存
栈内存
max(a, b)
之后的语句
10
函数参数的按值传递
函数参数传递过程的实质是将实参值通过栈空间一一传送给实参的过程,这种把实参表达式的值传送给对应的形参变量传递方式称为“按值传递”。
函数调用
函数定义
返回类型
函数名
(
形参
1,
形参
2,
...,
形参
n )
{
函数体;
}
栈内存
函数名
(
实参
1,
实参
2,
...,
实参
n );
实参
1
的值
实参
2
的值
...
实参
n
的值

《美学概论》复习题及参考答案 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数29
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ainibubian1313
  • 文件大小88 KB
  • 时间2018-04-24