- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章__函数与其应用(正式2)
函数及其应用
本章重点
函数的原型
函数的参数传递
系统函数的调用
函数的定义
函数的应用
函数的递归调用
本章难点
● 函数的原型
函数的参数传递
函数的定义
函数的递归调用
本章学习建议
学习中需要关注为什么要定义函数?函数有系统函数与自定义函数,系统函数调用时要包含相应的库函数,自定义函数时一定要认真关注此函数的返回值类型、函数名、函数的参数及参数的适用范围、函数调用中的实参与函数定义中的形参的对应关系,希望读者一定要多上机调试。
在学习第2章C程序的基本结构时已提到函数是组成C程序的基本单位,在一个C文件中可以有多个函数构成,在本章中将系统地学习函数的基本概念、系统函数的调用、函数的定义及函数的应用。
10.1 函数的基本概念
一个实用的C语言源程序总是由许多函数组成的,在这些函数中,可以调用C语言本身所提供的库函数,也可以调用由用户自己或他人编写的自定义函数。
在调用系统函数前,需要包含系统函数库;在调用自定义函数时,如自定义函数定义在后,则调用前需要对自定义函数的原型进行说明。
一个C语言源程序无论包含了多少个函数,C程序总是从main()函数开始执行,最后回到main()函数。
C语言中的函数可分为系统函数及自定义函数。不论是系统函数还是自定义函数,都有一定的格式,即函数原型,其形式为:
函数返回值类型 函数名(形式参数列表);
自定义函数的格式:
数据类型 函数名(形式参数声明)
{
函数体;
}
注意:
数据类型为调用此函数后的返回值类型。
例如:
int add(int x,int y)
{ int z;
z=x+y;
return z;
}
函数add有两个形式参数x、y,都为整型数,函数的功能是求x、y的和,调用后返回一个整型数。
10.2. 函数的参数
函数在数据的联系上有两个方面值得注意:一方面是外部的数据如何传递到函数内部;另一方面是函数内部加工过的数据如何传递给外部程序。
在C程序中,可以使用函数返回值、全局变量、形式参数和实际参数相结合的方法来实现函数间的数据传递。在本节中主要讨论形参和实参相结合的情况。
当调用函数时,实参的值一一复制给形参。当从被调用的函数返回到主函数时,形参被释放。在函数内部对形参的任何操作,其结果都只影响形参的值,而不影响实参的值。形参和实参结合分为两种形式:数据复制方式和地址传送方式。
(1)数据复制方式传递数据
例10.1 函数值传递的例子
步骤1:在Visual C++环境下新建文件可用[开始]→[程序]→[Microsoft Visual C++6.0] →[Microsoft Visual C++6.0] →[文件] →[新建]→[文件] →[C++ Sourse File],输入文件名10-1.c
步骤2:编辑下列文件
#includestdio.h
int add(int x,int y)
{
int z;
z=x+y;
return z;
}
int main()
{
int a,b,c;
scanf(%d %d,a,b);
c=add(a,b);
printf(c=%d\n,c);
return 0;
}
步骤3:点击编译图标,编译程序10-1.c
步骤4:点击执行图标 ,执行程序10-1.exe ,此程序执行后在屏幕上输出:
20 30
c=50
注意:在值传递时,形参具有以下特点:
函数add被调用时,形参变量x、y被创建,main函数中变量a、b分别传递给被调函数add中的变量x、y,实参与形参占用不同的存储空间。
形参变量的值是从实在参数中一一对应复制得到的。
形参为局部变量,只能在本函数中使用。
(2)地址传送方式传递数据。
地址方式传递的参数可以是变量的地址、指针、数组名。
例10.2 函数地址传递的例子,在main函数中读入一个由数字字符组成的字符串,调用一个函数,把它转换为一个整型数。
分析:用表达式*p-‘0’把一个数字字符转化为数字,如字符串“12”,计算‘1’-‘0’得到1,然后乘10,再加上‘2’-
图10.1 程序流程图
步骤1:在Visual C++环境下新建文件可用[开始]→[程序]→[Microsoft Visual C++6.0] →[Microsoft Visual C++6.0] →[文件] →[新建]→[文件] →[C++ Sourse File],输入文件名10-2.c
步骤2:编辑下列文件
#includestdio.h
int ctoi(char *p)
{
int sum=0;
while(*p)
{
sum*=10;
sum+=*p-‘0’;
p+
文档评论(0)