- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章函数.
函数
8.1 概述
一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这一概念,用子程序实现模块的功能。在C语言中,子程序的作用是由函数来实现的。一个C程序可由一个主函数和若干个其它函数构成。由主函数调用其它函数,其它函数也可以相互调用。同一个函数可以被一个或多个函数调用任意多次。
例如:
#includestdio.h
int isPrimeint n
int i;
fori2; in-1; i++
ifn%i0 break;
ifin
return 1;
elsereturn 0;
void main
int n;
printf“please enter a positive integer:“;
scanf“%d”,n;
ifisPrimen1
printf“%d is a prime number.\n”,n;
elseprintf“%d is not a prime number.\n“,n;
说明:
(1)一个c程序由一个或多个程序模块组成,每一个程序模块作为一个源程序文件。一个源文件可以为多个c程序共用。
一个源程序文件由一个或多个函数以及其他有关内容组成。一个源程序文件是一个编译单位。
C程序的执行是从main函数开始的,如是在main函数中调用其它函数,在调用后流程返回到main函数,在main函数中结束整个程序的运行。
所有函数都是平行的,即在定义函数时是分别进行的,是相互独立的。一个函数并不能从属于另一个函数,即函数不能嵌套定义。函数间可以相互调用,但不能调用main函数,main函数时系统调用的。
从用户使用来看,函数分为标准函数,即库函数;用户自定义函数。
从函数形式看,函数分为无参函数,在调用无参函数时,主调函数不像被调用函数传递数据。无参函数可以带回不带回函数值,一般不带回;有参函数,在调用有参函数时,主调函数要像被调用函数传递数据。有参函数一定要带回函数值,供主调函数使用。
8.2 函数定义的一般形式
无参函数定义的一般形式:
类型标识符 函数名()声明部分语句部分在定义函数时要用“类型标识符”指定函数值的类型,即函数带回来的值得类型。
有参函数定义的一般形式:
类型标识符 函数名(形式参数表列)声明部分语句部分
例如:
Int maxint x,int yInt z;Zxy?x:y;Return z;大括号内是函数体,它包括声明部分和语句部分。声明部分包括对函数中用到的变量进行定义以及对要调用的函数进行声明等内容。
如果在定义函数时不指定函数类型,系统会隐含指定函数类型为int型。
空函数形式:
类型说明符 函数名 ()例如:
Void dummy()调用此函数,什么也不做,以便扩充新功能。
8.3 函数参数和函数的值
在调用函数时,大多数情况下,主调函数和被调函数之间有数据传递关系。这就是前面所说的有参函数。
形式参数和实际参数
在定义函数时函数名后面括号中的变量名称为“形式参数”;在主调函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”。
例如:#includestdio.h
void mainint fint;
int a2,i;
fori0;i3;i++
printf“%d”,fa;
int fint aint b0;
static int c3;
bb+1;
cc+1;
returna+b+c;
说明:
在定义函数中指定的形参,在未出现函数调用时,他们并不占内存中的存储单元。只有在发生调用时,形参才有存储空间,调用结束后,空间被释放。
实参可以是常量、变量与表达式。
在被定义的函数中,必须指定形参的类型。
是参与形参的类型应相同或赋值兼容。
实参向形参的数据传递是“值传递”,单向传递。
函数的返回值
希望同函数调用使主调函数能得到一个确定的值,这就是函数的返回值。
例: 编写一个求两个数的最大值的函数
int maxint x, int y
int z;
zxy?x:y;
returnz;主函数的返回值可以是void ,也可以是int型
int main……;
return 0;说明:
函数的返回值是通过函数中的return语句获得的。Return语句将被调用函数中的一个确定值待会主调函数中去。一个函数中可以有一个以上的return语句,执行到哪个,哪个起作用。Return语句后面的括号也可以不要。Return后面的值可以是一个表达式。
在定义函数时应指定函数值的类型。凡不加类型说明的函数,自动按整型处理。
在定义函数时指定的函数类型一般应该和return语句中的表达式类型一致。如果不一致,以函数类型为准。
对于不带回值的函数,应
原创力文档


文档评论(0)