如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第一部分C++结构化程序设计4.1函数概述4.2函数的定义和调用2.retuen语句✿功能:结束函数的执行,将程序的控制权转移到调用处继续执行。✿一般形式格式一:return表达式;表达式的值作为函数的返回值,当表达式的类型与函数类型不同时,把表达式类型强制转换为函数类型。格式二:return;函数没有返回值时使用,此时函数的类型必须为void,如果return;为函数体中最后一条语句它可省略。例1:函数定义举例(求xn)。例2:函数定义举例(数据交换)。例3:函数定义举例(求两个数中较大的一个)。3.函数的调用在一个函数执行中间,转去执行其他函数的过程。函数调用形式为:函数名(实际参数表);例1:求x3+x5。例2:将三个数按由小到大顺序输出。4.3函数原型例:求x3+x5。4.4函数参数传递机制传值调用#include<iostream.h>voidswap(intx,inty);//函数原型voidmain(){inta(15),b(18);swap(a,b);cout<<"a="<<a<<"b="<<b<<endl;}voidswap(intx,inty){inttemp=x;x=y;y=temp;cout<<"x="<<x<<"y="<<y<<endl;}传地址调用传地址调用传地址调用传地址调用传地址调用传地址调用引用调用函数参数传递机制总结4.5嵌套调用和递归调用4.5嵌套调用和递归调用例:递归调用举例。求n!。4.6函数与指针编写指针型函数时要注意:从函数返回的地址必须是有效的,不能从函数返回函数中定义的非静态变量的地址。4.6函数与指针函数返回引用时要注意:不要从函数返回函数中定义的非静态变量的引用。4.6函数与指针例:函数指针变量使用示例。4.7函数参数的缺省#include<iostream.h>longpower(intx=10,intn=2);//原型说明voidmain(){intk=5;cout<<power(k)<<endl;cout<<power(k,3)<<endl;cout<<power()<<endl;}longpower(intx,intn){longp=1;while(n>0){p=p*x;n--;}returnp;}4.8函数重载例2:形参类型不同的函数重载。4.9函数模板例2:函数模板举例。4.10内联函数4.11系统函数例1:字符串处理库函数使用举例。例2:字符串处理库函数使用举例。例3:数学库函数使用举例。用梯形法求4.12作用域、生存期与可见性4.12作用域、生存期与可见性❃文件作用域任何在函数之外定义或说明的标识符都具有文件作用域。❃文件作用域标识符的作用域范围:从定义这些标识符的位置开始直到文件末尾结束。❃块作用域任何在函数体内或复合语句内定义或说明的标识符都具有快作用域。❃块作用域标识符的作用域范围:从定义这些标识符的位置开始直到相应的块结束。#include<iostream.h>voidmain(){inta[2][3]={1,2,3,4,5,6},sum=0;for(inti=0;i<2;i++)for(intj=0;j<3;j++)sum+=a[i][j];cout<<“sum=“<<sum<<endl;}❃函数作用域:只有语句标号具有函数作用域。❃函数原型作用域:函数原型参数表中使用的标识符具有函数原型作用域。其范围是函数原型中的左、右圆括号之间。4.12作用域、生存期与可见性❃局部生存期具有局部生存期的变量和数组只有在程序执行过程中遇到它们的定义时,系统才为它们分配存储空间,当它们的作用域结束时,它们所占用的空间被系统释放掉。❃块作用域的自动变量(或数组)具有局部生存期。自动变量的定义格式是:[auto]<类型名>变量名表;❃静态生存期具有静态生存期的变量和数组,在程序开始运行时系统即为它们分配空间,程序结束前才释放这些空间。它们的生存期与程序运行期一致。❃文件作用域的全局变量(或数组)、函数、常数以及块作用域的静态变量(或数组)具有静态生存期。静态变量的定义格式是:static<类型名>变量名表;❃动态生存期使用new运算符在堆中分配的变量和数组具有动态生存期。它们必须用delete运算符释放。4.12作用域、生存期与可见性例1:具有块作用域的自动变量的作用域、生存期和可见性举例。(p116例4.31)例2:作用域重叠的同名变量的可见性举例。(p116例4.32)例3:作用域分辩符(::)使用举例。作用域分辨符“::”,可以使全局变量处处可见。例4:块作用域变量使用举例。例5:全部(外部)变量(数组)举例。求5个数中最大的数。例6:全部(外部