讲授提纲第七章_函数(2).doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 函数 §7.1函数 一、函数及其定义 1.函数定义的一般形式(p114) 返回值类型 函数名 ( 形式参数表 ) 形式参数类型描述; { (函数内部的)变量定义与有关说明语句部分 函数的可执行语句序列 } [函数头]、[函数体] [例7-1] 求两个整数的最大值的函数定义。(或p115) int max ( x,y ) /* 定义了有两个形式参数x,y且返回int值的函数max */ int x, y; /* 说明了形参x,y均为int型 */ { int z; /* 定义了函数内部使用的变量z */ z = x>y ? x:y; /* 将x,y中较大值送入z */ return (z);/* 将z做为函数返回值,并使函数返回到被调程序(父程序) */ } 2.关于函数返回值类型 ① 允许C基本数据类型和任何有意义的用户自定义类型。 ② 如果省略返回值类型则隐含返回int类型。 ③ 没有返回值的函数。 3.关于形式参数及形参说明 函数参数是为在函数和父程序间传递数据而设置的。各参数在被父程序调用时才从父程序处获得真正的值,因而在定义函数时参数是“形式上”的值称形式参数,简称形参。函数被调用时形参从父程序处获得的真实值称实际参数,简称实参。实参传递给形参的过程称实形结合,加上函数处理结果返回到父程序的过程统称函数的参数传递,函数参数传递是函数技术中的重要内容。 ① 形参之间以“,”分隔。 ② 形参是局部性变量,只在函数内有效。 ③ 两种形参说明效果相同。 ④无参函数的()不能省略,以示位于()前面的标识符是函数名。 char GetCHAR() { int k; k =getchar(); if( k>=’a’ && k<=’z’) return k-32; else return 0; } 4.关于函数体与函数返回。 ① 函数体是实现函数功能的程序片断,函数体的设计与通常的编程在编程思想和技术上没有任何差别。 ② 返回语句return使函数退出运行返回到父程序继续执行,同时将函数值带回父程序。return语句共有4种形式。 return(表达式); return 表达式; return; 无return语句。 ③ return语句可以安排在函数体任何位置,也可安排多条return语句。 5.关于多个函数的位置关系:并列关系而非嵌套关系。 6.关于主函数main() ① 程序中有且仅有一个main()函数,程序从main()函数开始执行。 ② main() 函数也有形参,参数由操作系统给出,即“命令行参数”。 二、函数调用 1.函数调用的一般形式(p115) 函数名(实参表) 2.函数调用与函数执行过程(p116) 为函数的形参分配内存空间; 计算实参表达式的值,并将实参表达式的值赋给对应的形参; 为函数的局部变量分配内存空间; 执行函数体内的语句片段; 函数体执行完毕或执行了函数体内的return语句(若return语句带表达式,则计算出该表达式的值,并以此值作为函数的返回值)后,释放为这次函数调用分配的全部内存空间; 将函数及返回值返回到父程序的函数调用处,继续执行父程序。 [例7-2] 如下给出了程序中调用max函数的全过程说明。 #include <stdio.h> float max( float x, float y ) { float z; z = x>y ? x : y; return z; } main() { float a=19.8, b=-98.8, c; c = max( a, b ); printf( "MAX(a,b)=%f\n", c ); } 三、函数的参数传递方式 1.传值方式 [例7-3] 返回阶乘的函数及其调用,函数调用时参数采用传值方式。 #include <stdio.h> float fac( int n ) { int f= 1.0; while ( n >= 1 ) { f = f * n; --n; } return ( f ); } main() { int k = 6; printf( "%8.1f\n", fac( k ) ); } 2.传地址方式 [例7-4] 返回阶乘的函数及其调用,函数调用时采用传地址方式。 #include <stdio.h> float fac( int *n ) { int f= 1.0; while ( *n >= 1 ) { f = f * (*n); --(*n); } return ( f ); } main() { int k = 6;

文档评论(0)

sxahwd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档