- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第08章_2007JJ
2000年1月25日 北京理工大学 / 第一节 C程序结构 第二节 函数定义 第三节 函数的调用与返回 第四节 在函数之间传递数据 第五节 变量的存储属性 第六节 函数的递归调用 第七节 库函数简介 §8.1 C程序结构 1 一个C程序由一个或多个源程序文件组成。将若干函数和其它内容分别放在若干个源文件中,以达到分别编写,分别编译,提高运行效率的目的。同时一个源文件可以为多个C程序公用。 2 一个源程序文件由一个或多个函数组成。每一个源文件可以独立编译,即一个源程序文件是一个编译单位。 3 函数是最小的功能单位,一个函数可以被位于不同的源文件中的其它函数调用 4 一个C语言程序有且仅有一个主函数main( ),主函数可以放在任何一个源文件中,无论主函数在程序的什么位置,程序一定是从主函数开始执行的,并且在main函数中结束整个程序的运行 5 除main函数外,所有函数都是平行的,即所有函数都是互相独立的,一个函数并不从属于另一个函数,函数间可以互相调用,但不能调用main函数 6 将属于同一程序的不同源文件组装成一个程序可以通过工程文件实现 模块化是结构化程序设计的基础。采用模块化程序设计有很多优越性: 控制程序设计的复杂性 提高软件的可靠性 提高软件开发的效率 提高软件的可维护性 提高程序的重用性 函数分类: 从用户使用的角度看,函数分为: ①库函数,库函数是由系统提供的,用户不必自己编写这些函数,可以直接使用它们。 ②用户函数,即用户自己定义的函数,用以解决用户的专门需要。 从函数的形式看,函数分为: ①无参函数。在调用无参函数时,不必将数据传递给被调用函数。 ②有参函数。在调用有参函数时,在主调函数和调用函数之间有数据传递。 §8.2 函数定义 数据类型 函数名(形参表说明) { 声明语句 执行语句 } 1.函数定义中的类型是指函数返回值的类型。函数返回值不能是数组,也不能是函数,除此之外如何合法的数据类型都可以是函数的类型。 2.函数的类型可以省略,当不指明函数类型时,系统默认的函数类型是整型。 3.函数名是标识符,是函数定义中唯一不可省略的,用于标识函数,并用该标识符调用函数。 4.形式参数表是用逗号分隔开的一组变量说明,包括形参的类型和形参标识符。其作用是当调用函数时,接受来自主调函数的数据。无参函数( )不可省略。 5. 有参函数的形参声明放在函数头当中,而形参的作用域也仅仅存在于本函数之中。 6.{ }括起来的部分是函数体。函数体是一段程序,确定该函数应执行的规定动作,集中体现了函数的功能。{ }不可省略 函数定义实例 1.C语言中一个最简单的函数: dummy ( ) /* 函数名:dummy */ { } 没有数据类型说明、形参和形参说明,函数体为空。 2.求阶乘函数facto的定义。 long facto (int x ) { long y; for (y=1; x0; - -x) y *= x; return (y); } main( ) { int a,b,c; printf(”Enter a,b\n”); scanf(”%d,%d”,a, b ); c = max( a,b ); printf(”Max = d”, c); } int max ( int x , int y ) { int z; z = x y ? x : y ; return ( z ); } §8.3 函数的调用与返回 有参函数调用的形式为: 函数名(实参表列); 无参函数调用的形式为: 函数名(); 在函数调用过程中,实参与形参的个数应当相等,并且按顺序一一对应。实参可以是常量、变量或是表达式,甚至是另外一个函数调用的返回值。 函数调用的过程: 在一个函数中调用另一个函数时,程序将控制从调用函数处转移到被调用函数,并执行被调用函数。 在执行完被调用函数的所有语句或者遇到return语句时,程序的控制要返回到调用函数中原来调用函数的地方继续执行。 1 函数语句 被调函数在主调函数中以语句的方式出现,通常只完成一种操作,不带回返回值。 func( ) { printf(“This is a program!”); } main( ) { func( ); } 2 函数表达式 将函数的调用结果作为运算符的运算分量,这种调用方式下被调用函数必须有返回值。 main( ) { int a ,b ,i ,j ,c ; scanf(“%d %d %d %d”,a,
文档评论(0)