- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 函数与预处理 4.1 概述 4.2 函数的定义 4.3 函数参数和函数的值 4.4 函数的调用 4.5 内置函数 4.6 函数重载 4.7 函数模板 4.8 有默认参数的函数 4.9 函数调用机制 4.10 函数的递归调用 4.11 局部变量和全局变量 4.12 变量的存储类别 4.13 关于变量的声明和定义 4.14 内部函数和外部函数 4.15 预处理命令 4.1 概述 程序通常是非常复杂而冗长的,在编写一个很长的程序时,往往将之分割成一些相对独立而且便于管理和阅读的小块程序。 把实现某一功能的相关语句组织在一起,并给之注明相应的名称,这种形式的组合就称为函数。 任何一个C++程序都是由若干函数组成的。 函数按其是否为系统预定义的可分为二类: ①库函数(或标准函数)。 ②用户自定义函数。 函数按是否带有参数可分为有参函数和无参函数。 在一个程序文件中可以包含若干个函数。无论把一个程序划分为多少个程序模块,只能有一个main函数。程序总是从main函数开始执行的。在程序运行过程中,由主函数调用其他函数,其他函数也可以互相调用。 在实际应用的程序中,主函数写得很简单,它的作用就是调用各个函数,程序各部分的功能全部都是由各函数实现的。主函数相当于总调度,调动各函数依次实现各项功能。 例 在主函数中调用其他函数。 #include iostream using namespace std; void printstar() //定义printstar函数 { cout******************************endl; //输出30个“*” } void print_message() //定义print_message函数 { coutWelcome to C++!endl; //输出一行文字 } int main() { printstar( ); //调用printstar 函数 print_message( ); //调用print_message函数 printstar( ); //调用printstar 函数 return 0; } *函数机制 一是指程序运行过程中对函数调用的数据管理和处理过程。 二是指编程中函数的使用规范。它包括: 函数参数的属性和传递规则; 函数返回类型的匹配与审查; 函数名字的识别原则; 函数体效率的选择; 函数体中数据的访问权限等。 4.2 函数的定义 一个函数包括函数头和函数体两部分。 ①函数头定义函数功能和接口的全部要素,包括函数名、函数参数和函数返回值类型。 ②函数体则定义函数的算法实现。 函数必须先定义后使用。 4.3 函数参数和函数的值4.3.1 形式参数和实际参数 在调用函数时,大多数情况下,函数是带参数的。主调函数和被调用函数之间有数据传递关系。 在定义函数时函数名后面括号中的变量名称为形式参数(formal parameter,简称形参),在主调函数中调用一个函数时,函数名后面括号中的参数(可以是一个表达式)称为实际参数(actual parameter,简称实参)。 例 调用函数时的数据传递。 #include iostream using namespace std; int max(int x,int y) //定义有参函数max { int z; z=xy?x:y; return z; } int main( ) { int a,b,c; coutplease enter two integer numbers:; cinab; c=max(a,b); //调用max函数,给定实参为a,b。函数值赋给c coutmax=cendl; return 0; } 运行情况如下: please enter two integer numbers:2 3↙ max=3 有关形参与实参的说明: (1) 在定义函数时指定的形参,在未出现函数调用时,它们并不占内存中的存储单元,因此称它们是形式参数或虚拟参数,表示它们并不是实际存在的数据,只有在发生函数调用时,函数max中的形参才被分配内存单元,以便接收从实参传来的数据。在调用结束后,形参所占的内存单元也被释放。 (2) 实参可以是常量、变量或表达式,如max(3, a+b);但要求a和b有确定的值。以便在调用函数时将实参的值赋给形参。 (3) 在定义函数时,必须在函数首部指定形参的类型。 (4) 实参与形参的类型应相同或赋值兼容。 (5)函数参数的传递方式可分为按值传递和按引用传递两种。 按值传递:将实参的值复制给形参,在函数中参加运算的是形参,而实参不会发生任
文档评论(0)