欢迎来到天天文库
浏览记录
ID:48663956
大小:133.08 KB
页数:19页
时间:2020-01-18
《visual studio学习第5章 函数.pptx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章函数在开发较大的程序时,经常需要把程序分解为若干个程序模块,每一个模块实现一个特定的功能。在C++程序中,函数就是一个基本的程序模块。在前面的程序中,都是在自己编写的主函数main(),有时还会调用标准库中的一些函数。本章将介绍如何定义自己的函数。声明并编写自己的C++函数函数的参数函数的调用函数和数组的使用变量的作用域函数模板C++/CLI中的函数和泛型函数5.1函数的定义从用户使用的角度看,函数有两种:标准函数和自定义函数。标准函数也就是库函数,这是由系统提供的,用户不必自己定义这些函数,可以直接使用。自定义函数则是用户根据需求,自己编写的用于实现特定功能,这也是我们本章要介绍的函
2、数类型。自定义函数也可以分为两种:无参函数在调用无参函数时,主调函数并不将数据传递给被调函数。无参函数一般是用来执行指定的操作。有参数函数在调用有参数函数是,在主调函数和被调函数之间有数据传递。也就是说,主调函数可以将数据传给被调函数使用,被调函数中的数据也可以带回来供主调函数使用。5.2函数的参数和返回值大多数情况下,在调用函数时,主调函数和被调函数之间有数据传递关系。主调函数通过参数将数据传递给被调函数,而被调函数则通过返回值向主调函数传递数据。5.2.1实参与形参在定义函数时,函数名后面括号中的变量名称为“形式参数”,简称“形参”,在主调节器函数中调用函数时,函数后面括号中的参数称为“
3、实际参数”,简称“实参”。5.2.2函数的返回值被调函数向主调函数传递数据的一种方法就是使用返回值。例如,在示例Exce5_01中,函数power(5.0,2)的返回值就是25,输出语句在命令行输出了这个值。函数的值只能通过return语句返回主调函数。return语句的一般形式为:return表达式;或者为:return(表达式);当函数执行时遇到return句,则该函数将结束执行立即返回到主调函数。在函数中允许有多个return语句,但每次调用函数只会有一个return语句被执行,因此也只会返回一个函数值。5.2.3使用const修饰符的函数形参在定义函数时,如果在形参前添加const修
4、饰符,则表示该参数不能在函数中以任何方式修改。5.3函数的调用前面已经说过,在程序中是通过对函数的调用来执行函数体的,函数调用的一般形式为:函数名(实参列表)如果函数是无参函数,则还可以省略实参列表。5.3.1函数调用机制在调用函数时,程序的执行流程将从一块代码跳到另一块代码,并将实际参数传递过去;当被调用函数结束后,程序的执行流程返回会到原来的代码块继续执行,并返回函数的执行结果。为了管理函数调用过程中的数据传递和执行代码的控制转移,大多数程序语言使用栈来进行管理。栈是一种先进后出的数据结构,如果数据元素是以a1,a2,…,an的顺序进栈,则出栈的次序却是an,an-1,…,a1,如图5-
5、2所示。栈的工作原理类似于在子弹匣中压子弹一样,最先压入弹匣的子弹要到最后才发射出去,而最后压入弹匣的子弹则最先被发射出去。栈的工作过程如右图所示。5.3.3函数原型在编写程序时,应该在程序文件的开头为在程序中要使用的每个函数编写其函数原型,这样就不会因为函数的位置不正确而无法编译程序了。对于标准库函数,其函数的原型已经包含基其头文件中,因此在包含头文件后就不再需要函数原型。5.4函数的递归调用如果一个函数在被调用的过程中,又发生了直接或间接地调用它自己,这种现象称为函数的递归调用。递归是一种非常有效的数学方法,也是程序设计的一种重要算法。对某些问题的处理,采用递归的方法比非递归方法更为有效
6、,或者能够更自然、更明显地反映出解决问题的过程。5.5函数的默认参数值如果函数有多个参数,那么还给多个参数设置默认值,但是指定默认值的参数都必须放在参数列表的最后。因为,在调用函数时要使用参数的默认值,应省略相应的参数。如果省略参数列表中间的参数,则编译器将无法确定提供的实参所对应的形参。5.6函数和数组在前面定义的函数中,所使用的参数均为变量。由于数组元素也起到了变量的作用,因此数组元素也可以做为参数传递。另外,数组也可以用作函数的参数,此时并不会复制整个数组,而是将数组在内存中的地址传递给被调函数。这样,可以有效地减少因为复制大型数组而降低程序的性能。将整个数组作作函数参数,此时实参与形
7、参都应用数组名,而且其类型应该一致。实际上,整个数组作函数参数传递的是数组的首地址,将实参数组的首地址传递给形参数组后,形参数组与实参数组将共享相同的存储单元,此时可以实现数据的双向传递。即在函数中改变形参数组的值后,主调函数的实参数组也将同时改变。5.7函数与变量的作用域在程序中定义变量时,由于定义变量的位置不同,决定了在程序的某处是否可以访问该变量。这就是变量的一个重要属性——作用域。只有在一个变量的作用
此文档下载收益归作者所有