- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6篇 章 函数 C语言课件.ppt
第6章 函数 本章内容 函数的定义和返回值 函数的调用和声明 标准函数 1 2 3 函数的参数 4 函数的嵌套调用和递归 5 变量的存储类别 6 函数 一个C语言源程序通常由一个主函数和若干个子函数组成,各子函数之间的关系是平行的,因此不能嵌套定义,但能相互调用。一个C语言源程序无论包含了多少个函数,程序的执行总是从主函数main()开始,并终止于主函数main()。 从用户使用的角度将函数分为两种:标准函数(库 函数)和用户自定义函数。 6.1 函数的定义和返回值 1、函数定义的一般形式: [类型标识符] 函数名([形式参数表]) { [函数体] } 函数名:由用户命名,命名规则与标识符命名规则相同。 类型标识符: 定义了函数返回值的数据类型。当函数的返回值是整形或字符型,可省略类型标识符。当函数无返回值时,则类型标识符用void关键字。 形式参数表的一般形式为: 类型标识符 形参1,类型标识符 形参2,··· 若省略形式参数表,则称为无参函数。否则称为有参函数。 函数体:包含了说明语句和执行语句。当函数无函数体时,则为空函数。 函数的返回值 2、函数的返回值 函数的返回值是通过return语句实现的。 格式:return(表达式);或 return 表达式; 语义:当函数执行到return语句时,程序的流程立即返回到调用该函数的地方(通常称为退出调用函数),并通过return语句返回函数值。return语句中表达式的值就是函数返回值。 注意:如果函数有返回值,这个值就应该有一个确定的数据类型,所以在定义函数首部时应指定函数值的类型。 函数调用过程图解 函数举例 例:试编写一个C程序按下列公式求排列组合问题 Cmn=m!/(n!*(m-n)!) main() { int m,n; long cmn; printf(input m,n:); scanf(%d%d,m,n); cmn=fac(m)/fac(n)/fac(m-n); printf(%ld\n,amn); } long fac(int n) { int i; long k=1; for(i=1;i=n;i++) k*=i; return(k); } 函数的声明 在一个函数中调用另一函数(即被调函数)必须具备以下三个条件: 被调函数必须是已经存在的函数(标准函数或用户自定义函数)。 如果调用的是标准函数,应该用预处理命令 #include 将该函数对应的头文件包含进来。 如果调用用户自定义函数,可能需要对被调用函数返回值的类型以及形参的个数和类型作声明。 函数声明 函数声明的一般形式: 类型标识符 被调函数的函数名([形式参数表]); 这种包含参数和返回值类型的函数声明称为函数原型。 注意: 主调函数中的函数声明只是声明了要调用的函数返回值的类型以及形参的个数和类型,不是定义一个函数。 函数声明时指定的函数返回值类型必须与该函数定义时所指定的类型一致。 在同一个文件中,如果被调函数位于主调函数之前,或者被调函数的返回值是int 型或char型时,则对被调函数的声明可以省略。 函数举例 例: #include “stdio.h” main ( ) { int a, b,c; int max (int x, int y); /* 函数说明*/ scanf (“%d %d”,a,b); c=max (a,b); /* 函数调用*/ printf (“%d\n”,c); } int max (int x,int y) /*函数定义*/ { return (xy ? x: y); } 函数参数 形参:形参出现在函数的定义中,在整个函数体内可以使用,离开该函数则不能使用; 形参必须是变量,在函数定义时必须进行类型说明; 函数调用时,形参被临时分配存储单元,调用结束后,形参所占单元被释放。 实参:实参出现在主调函数中,在函数调用时,把实参的值传递给形参,从而实现主调函数向被调函数的数据传递。 实参可以是常量和有确定值的变量、数组元素或表达式。 注意:在函数调用期间,实参和形参对应不同的内存单元,所以在被调函数中形参的改变不会影响到主调函数的实参,这是一种“单向传值”调用。 参数举例 #include “stdio.h” int ab
文档评论(0)