ch8-函数.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch8-函数

第八章 Working with Function 计算机科学与技术学院 刘慧 主要内容 8.1 函数 8.2 参数和局部变量 8.3 函数的返回值 8.4 函数的嵌套调用 8.5 函数的递归调用 8.6 函数与数组 8.7 全局变量 8.1 Defining a Function 所有C程序都依赖于函数。 8.1 Defining a Function 函数调用(calling)的过程: 8.1 Defining a Function 函数的分类: 标准库函数(C library):如printf(), scanf()。 自定义函数:如printMessage(void)。 无论是调用标准库函数,还是调用自己编写的函数,在函数调用返回之后,计算机都将接着执行调用函数那条语句后面的语句。 8.2 Arguments and Local Variables 函数参数:在调用函数时向其传递的值。 参数作用:增加程序的灵活性,根据需要显示结果。 8.2.1 Function Prototype Declaration 函数原型声明: 定义了一个函数calculateTrigularNumber; 该函数不返回任何值(void); 函数接受一个整型参数n。 在函数原型声明中,函数参数的正式名字是形式参数(formal parameter name),形参的命名应符合C语言合法变量名的要求。 试一试:把自定义函数部分放在main函数体之后。 8.2.2 Automatic Local Variables 自动局部变量:在函数体内部声明的变量。 每次函数被调用,编译器会自动创建这些变量; 除了该函数,程序的其它部分无法访问这些变量; 如果函数中声明变量的时候赋了初值,那么每次调用该函数时,该变量都会被重新赋初值。 C语言编译器默认任何在函数体内部定义的变量都是自动局部变量,所以可以省略关键字auto。 8.2.3 Static Variables 静态变量:静态存储类型的变量,即在程序运行期间分配固定的存储单元,它永久存在,不随函数的调用和退出而发生变化。 如果在上次调用函数的时候给静态变量赋了值,那么以后每次调用该函数时,该变量值保持不变。 初始化问题。 8.3 Returning Function Results 函数返回值:一个函数可以将某个值返回给它的调用者。 适用情况:被调用函数负责计算,调用函数输出计算结果或需要用到计算结果。 注意:在函数声明的时候一定声明返回值的类型。 注意:C语言中每个函数只能返回一个值,或者不返回任何值(void)。 8.4 Functions Calling Functions Calling… 函数嵌套调用 8.4 Functions Calling Functions Calling… 计算某个数字的平方根(square root)的近似值 Newton-Raphson 迭代法(Ineration): 首先,对于给定的数字猜测一个可能的平方根,用1作为最初的猜测值; 用给定数字除以最初猜测的值,然后将商与最初猜测值相加,再将和除以2,并将该结果作为新的猜测值; 重复执行上述步骤,猜测值将会越来越接近真正的平方根,直至猜测值的平方与给定数字之间的差小于极限值ε。 8.4 Functions Calling Functions Calling… Newton-Raphson 迭代法(Ineration): 8.5 Recursive Functions 递归函数可以非常简洁和有效地解决某些计算问题。 思想:将同样的解决方法用于越来越小的问题子集,最终得出答案。 8.6 Functions and Arrays 如同普通变量一样,我们也可以将数组元素甚至整个数组作为参数传递给函数。 将整个数组作为参数传递给函数与传递单个变量或者数组元素完全不同。 将数组名写在参数调用的地方(实参); 不需要添加任何下标表达式。 以minimum()函数为例: 8.6.1 Assignment Operators 重要法则,牢记在心: 如果将数组作为参数传递给某个函数,并在函数中改变数组元素的值,那么这些改变在函数调用结束后被返回。 将普通变量或数组元素作参数时,其值被拷贝到形参中,因此被调用函数是对实参的副本进行的操作,而不是实参本身。 而将数组作参数时,是把实际数组所在内存地址拷贝到形参中,因此函数对形参所代表数组的任何操作,实际上就是对实参所代表数组进行的操作。 8.6.2 Sorting Arrays 8.6.2 Sorting Arrays 8.7 Global Variables 局部变量:在一个函数(包括主函数main)内部定义的变量,它只在本函数内有效。即只在本函数内才能使用,在此

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档