形参实参以及调用方法.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
形参实参以及调用方法

第8章 函数 函数的引入 函数:函数是完成某些特定功能的代码块。 使用函数的优点: 1)实现模块化设计:将一个大任务分解成一个个的小任务,然后每个任务分别用函数实现。 2)实现“编写一次,多次调用”,避免在不同的程序中重复编写相同的函数。 3)便于程序调试和维护,因为每个函数之间是相互独立的。 函数的分类:库函数和用户自定义函数 8.1 函数的定义 例8. 1编写函数max:求两个整数x和y中的较大数。 int max (int x, int y) /*函数头*/ { int z=x; /*函数体{……}*/ if (xy) z=y; return z; } main() { int a, b, d; printf(input a and b:); scanf{%d %d, a, b}; d=max(a, b); /*函数调用*/ printf(max is:%d, d); } 例8.2:设某程序中需多次用到打印表头(如下所示)的功能,该功能用函数实现: void line( ) { printf(\n ********************); printf(\n* score list *); printf(\n ********************); } 本例中,函数的类型: void,函数名为line,函数无参数。 该函数无返回值,所以函数类型为void型。 函数定义的一般形式如下: 函数类型 函数名(类型名 形式参数1,类型名 形式参数2,…) { 说明部分 语句部分 } 1.函数名:是该函数的唯一标识符,一般函数的命名最好做到“见名知义”。 2.函数类型:函数的返回值的类型。 当函数无返回值时,规定其类型为: void。 当函数返回值为 int 时,函数类型可以省略。 3. 形式参数:形参是函数被调用时用于接收实参值的变量。 根据实际需要可有可无。没有形参时,圆括号也不可省;多个参数之间应用逗号分隔。参数包括参数名和参数类型。 形参的类型说明可有如下两种格式: int max(int a,int b) /*形参的类型在形参表中直接说明*/ { return (ab?a:b);} 或 int max(a,b) int a,b; /*形参的类型在函数体前、函数名后说明*/ { return(ab?a:b); } 前者为标准格式,后者为传统格式,通常用前者。 4.函数体:即函数功能的具体实现。 它包括两部分: 说明部分和执行部分,其中说明部分包括函数中所用的局部变量等的说明、函数中要调用的函数的说明。 注意: 函数不能嵌套定义,即函数内不能再定义函数,这样可以保证函数间是相互独立的,以实现模块化程序设计。 5.空函数: 函数类型 函数名( ) { } 调用此函数时,什么也不做。只是表明这里要 调用一个函数,而现在这个函数的功能还没实现。 空函数在程 序设计中常常用到的: 1)预留函数,便于以后扩充程序功能。 2)便于程序的模块化设计和调试:程序设计中往往根据需要确定若干模块,分别由一些函数来实现。一个大系统,需要编写很多用户函数,而这些函数不可能 也没有必要同步完成,通常足从一些基本模块开始,编写一个调试一个,对于没有编写 的函数就需要用空函数代替。从而也有利于集体创作。 空函数举例 例8.3 编写小学生算术练习系统的主程序: 显示主菜单,用户选择,根据选择执行加、减、乘、除、退出5项功能之一。 重复上述步骤,直至选择退出。 其中主程序调用的函数有:显示主菜单函数list_menu(),加、减、乘、除、退出函数分别是add(), sub(), mul(),divide(), end(). 以上函数除list_menu()外此时均为空函数。 程序:l8_1_4.c #include stdio.h /*l8_1_4.c*/ main() { void add(),sub(),mul(),divide(),end(),list_menu(); int n; do{ list_menu(); scanf(%d,n); getchar(); switch(n) {case 1: add(); break; case 2:

文档评论(0)

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

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

1亿VIP精品文档

相关文档