好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

visualstudio学习第5章函数.pptx

19页
  • 卖家[上传人]:工****
  • 文档编号:606660881
  • 上传时间:2025-05-23
  • 文档格式:PPTX
  • 文档大小:238.73KB
  • / 19 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2011-2-10,#,第,5,章,函数,在,开发较大的程序时,经常需要把程序分解为若干个程序模块,每一个模块实现一个特定的功能在,C+,程序中,函数就是一个基本的程序模块在前面的程序中,都是在自己编写的主函数,main(),,有时还会调用标准库中的一些函数本章将介绍如何定义自己的函数声明,并编写自己的,C+,函数,函数,的参数,函数,的调用,函数,和数组的使用,变量,的作用域,函数,模板,C,+/CLI,中的函数和泛型函数,5.1,函数的定义,从,用户使用的角度看,函数有两种:标准函数和自定义函数标准函数也就是库函数,这是由系统提供的,用户不必自己定义这些函数,可以直接使用自定义函数则是用户根据需求,自己编写的用于实现特定功能,这也是我们本章要介绍的函数类型自定义函数也可以分为两种:,无,参函数,在调用无参函数时,主调函数并不将数据传递给被调函数无参函数一般是用来执行指定的操作有,参数函数,在调用有参数函数是,在主调函数和被调函数之间有数据传递也就是说,主调函数可以将数据传给被调函数使用,被调函数中的数据也可以带回来供主调函数使用。

      5.2,函数的参数和返回值,大多数,情况下,在调用函数时,主调函数和被调函数之间有数据传递关系主调函数通过参数将数据传递给被调函数,而被调函数则通过返回值向主调函数传递数据5.2.1,实参与形参,在,定义函数时,函数名后面括号中的变量名称为“形式参数”,简称“形参”,在主调节器函数中调用函数时,函数后面括号中的参数称为“实际参数”,简称“实参”5.2.2,函数的返回值,被,调函数向主调函数传递数据的一种方法就是使用返回值例如,在示例,Exce5_01,中,函数,power(5.0,2),的返回值就是,25,,输出语句在命令行输出了这个值函数,的值只能通过,return,语句返回主调函数return,语句的一般形式为:,return,表达式;,或者为:,return,(,表达式,),;,当,函数执行时遇到,return,句,则该函数将结束执行立即返回到主调函数在函数中允许有多个,return,语句,但每次调用函数只会有一个,return,语句被执行,因此也只会返回一个函数值5.2.3,使用,const,修饰符的函数形参,在,定义函数时,如果在形参前添加,const,修饰符,则表示该参数不能在函数中以任何方式修改。

      5.3,函数的调用,前面,已经说过,在程序中是通过对函数的调用来执行函数体的,函数调用的一般形式为,:,函数,名,(,实参列表,),如果,函数是无参函数,则还可以省略实参列表5.3.1,函数调用机制,在,调用函数时,程序的执行流程将从一块代码跳到另一块代码,并将实际参数传递过去;当被调用函数结束后,程序的执行流程返回会到原来的代码块继续执行,并返回函数的执行结果为了管理函数调用过程中的数据传递和执行代码的控制转移,大多数程序语言使用栈来进行管理栈,是一种先进后出的数据结构,如果数据元素是以,a1,,,a2,,,,,an,的顺序进栈,则出栈的次序却是,an,,,an-1,,,,,a1,,如图,5-2,所示栈的工作原理类似于在子弹匣中压子弹一样,最先压入弹匣的子弹要到最后才发射出去,而最后压入弹匣的子弹则最先被发射出去栈的工作过程,如,右,图所示5.3.3,函数原型,在,编写程序时,应该在程序文件的开头为在程序中要使用的每个函数编写其函数原型,这样就不会因为函数的位置不正确而无法编译程序了对于标准库函数,其函数的原型已经包含基其头文件中,因此在包含头文件后就不再需要函数原型5.4,函数的递归调用,如果,一个函数在被调用的过程中,又发生了直接或间接地调用它自己,这种现象称为函数的递归调用。

      递归是一种非常有效的数学方法,也是程序设计的一种重要算法对某些问题的处理,采用递归的方法比非递归方法更为有效,或者能够更自然、更明显地反映出解决问题的过程5.5,函数的默认参数值,如果,函数有多个参数,那么还给多个参数设置默认值,但是指定默认值的参数都必须放在参数列表的最后因为,在调用函数时要使用参数的默认值,应省略相应的参数如果省略参数列表中间的参数,则编译器将无法确定提供的实参所对应的形参5.6,函数和数组,在,前面定义的函数中,所使用的参数均为变量由于数组元素也起到了变量的作用,因此数组元素也可以做为参数传递另外,数组也可以用作函数的参数,此时并不会复制整个数组,而是将数组在内存中的地址传递给被调函数这样,可以有效地减少因为复制大型数组而降低程序的性能将,整个数组作作函数参数,此时实参与形参都应用数组,名,,而且其类型应该一致实际上,整个数组作函数参数传递的是数组的首地址,将实参数组的首地址传递给形参数组后,形参数组与实参数组将共享相同的存储单元,此时可以实现数据的双向传递即在函数中改变形参数组的值后,主调函数的实参数组也将同时改变5.7,函数与变量的作用域,在,程序中定义变量时,由于定义变量的位置不同,决定了在程序的某处是否可以访问该变量。

      这就是变量的一个重要属性,作用域只有在一个变量的作用域内,才可以合法地使用它在一个变量的作用域外,是不能引用它的根据变量的作用域不同,变量可以分为局部变量和全局变量5.7.1,局部变量,局部变量,也称为内部变量局部变量是在一个函数内定义的变量其作用域仅限于函数内,离开该函数后就不能再使用该变量5.7.2,全局变量,全局变量,也称为外部变量,它是在函数外部定义的变量全局变量不属于哪一个函数,它属于一个源程序文件,其作用域是整个源程序5.8,变量的生存期,在,程序执行时,所有变量都有一个有限的生存期从声明它们开始存在,在程序的某时该结束变量的生存期由变量的存储方式决定,变量的存储方式可分为“静态存储”和“动态存储”两种静态,存储变量通常是在变量定义时就分定存储单元,并一直保持不变,直至整个程序结束全局变量即属于此类存储方式动态存储变量是在程序执行过程中,当需要使用它时才分配存储单元,使用完毕立即释放如函数的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时,才予以分配,调用函数执行完毕后立即释放如果一个函数被多次调用,则会反复地分配、释放形参变量的存储单元5.8.1,自动变量,自动,变量是在程序运行期间根据需要进行动态的分配存储空间。

      到目前为止,在函数内定义的所有局部变量都是自动变量,它们具有局部作用域一个自动变量在其作用域中的时间从声明它的哪一刻开始,一直到包含其声明的代码块结束为止自动,变量起始于它被定义之时,它占用的空间在程序的栈内存空间上分配,并且在包含其定义的代码块结束时自动消失每次执行包含一个自动变量声明的代码块时,这个变量就被重新创建当一个自动变量消失时,它在栈上的内存将被释放,而由其他自动变量使用5.8.2,静态变量,静态,变量的类型说明符为关键字,static,静态变量属于静态存储方式对于自动变量,也可以用,static,定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式在,局部变量的说明前再加上,static,说明符就构成静态局部变量5.9,函数的重载,如果,能实现相同功能的函数都使用相同的名称,同时在程序执行时还能执行合适版本的函数,这将解决相同功能的函数不能使用同名标识的难题C+,提供了这种机制,这就是函数重载函数,重载允许使用相同的名称定义多个函数,但是这些函数的形参列表不能相同当调用函数时,编译器就会基于调用时提供的实参列表选择正确版本的函数。

      点击阅读更多内容
      相关文档
      【全国硕士研究生入学统一考试政治】2020年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2015年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2010年考研政治真题.docx 【全国硕士研究生入学统一考试政治】1996年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2001年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2016年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2000年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2007年考研政治真题.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2004年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2003年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2019年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2009年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2001年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2021年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2014年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2018年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2008年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2011年考研政治真题.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.