欢迎来到天天文库
浏览记录
ID:26909073
大小:245.51 KB
页数:74页
时间:2018-11-30
《《函数和作用域》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章函数和作用域函数的定义和说明函数的调用函数的参数内联函数函数重载函数的嵌套调用和递归调用作用域C++的系统函数§4.1函数的定义和说明一、函数的定义<类型><函数名>(<参数表>)<函数体>函数返回值的类型§4.1函数的定义和说明一、函数的定义<类型><函数名>(<参数表>)<函数体>函数的标识§4.1函数的定义和说明一、函数的定义包括参数名和参数类型(无形参时,括号不可省)<类型><函数名>(<参数表>)<函数体>函数调用时的形式参数§4.1函数的定义和说明一、函数的定义<类型><函数名>(<参数表>)<函数体>函数的具体实现例
2、:intadd(intx,inty){intz;z=x+y;returnz;}voidnothing(){}二、函数的说明(声明)函数定义在后、调用在先,调用前必须说明;函数定义在先、调用在后,可以不加说明;复杂调用中,常在程序头对所有被调用函数一次性说明。<类型><函数名>(<参数表>);例:intadd(intx,inty);原型说明[例4.2]#includevoidfun1(),fun2(),fun3();voidmain(){cout<<“Itisinmain.”<3、“Itisbackinmain.”<(<实参表>)voidmain(){inta=3;intb=5;intc=add(a,b4、);//实参与形参个数相等,类型相同}实参函数调用表达式的值是函数的返回值;函数调用表达式的类型是函数的类型;函数调用通过一个表达式实现:return<表达式>;或return;函数的返回值通过返回语句实现<表达式>的值作为函数的返回值;<表达式>的类型自动转换为函数类型;程序执行的控制权转向调用函数;注:无返回值的函数用“void”说明类型!一、函数的传值调用1.传值调用将实参值拷贝一个副本给对应的形参;形参值的改变不影响实参!实参:常量、变量值或表达式值形参:变量变量的两种值:变量本身值和变量地址值;传值调用分为:传值调用和传址调用5、;[例4.3]#includevoidswap1(intx,inty){inttemp;temp=x;x=y;y=temp;//形参值交换cout<<“x=”<6、用[例4.4]#includevoidswap2(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp;//形参指针所指向的变量值交换cout<<“x=”<<*x<<“y=”<<*y<7、应的实参值;引用调用比传址调用更直接。形参:引用实参:变量名引用是变量的别名对引用的操作就是对被引用的变量的操作[例4.5]#includevoidswap3(int&x,int&y){inttemp;temp=x;x=y;y=temp;//形参引用值交换cout<<“x=”<8、数参数的求值顺序C++没有规定函数调用时实参的求值顺序,各编译器自行规定;当实参表达式中带有副作用的运算符时,可能产生由于求值顺序不同而造成的二义性;[例4.6]#includein
3、“Itisbackinmain.”<(<实参表>)voidmain(){inta=3;intb=5;intc=add(a,b
4、);//实参与形参个数相等,类型相同}实参函数调用表达式的值是函数的返回值;函数调用表达式的类型是函数的类型;函数调用通过一个表达式实现:return<表达式>;或return;函数的返回值通过返回语句实现<表达式>的值作为函数的返回值;<表达式>的类型自动转换为函数类型;程序执行的控制权转向调用函数;注:无返回值的函数用“void”说明类型!一、函数的传值调用1.传值调用将实参值拷贝一个副本给对应的形参;形参值的改变不影响实参!实参:常量、变量值或表达式值形参:变量变量的两种值:变量本身值和变量地址值;传值调用分为:传值调用和传址调用
5、;[例4.3]#includevoidswap1(intx,inty){inttemp;temp=x;x=y;y=temp;//形参值交换cout<<“x=”<6、用[例4.4]#includevoidswap2(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp;//形参指针所指向的变量值交换cout<<“x=”<<*x<<“y=”<<*y<7、应的实参值;引用调用比传址调用更直接。形参:引用实参:变量名引用是变量的别名对引用的操作就是对被引用的变量的操作[例4.5]#includevoidswap3(int&x,int&y){inttemp;temp=x;x=y;y=temp;//形参引用值交换cout<<“x=”<8、数参数的求值顺序C++没有规定函数调用时实参的求值顺序,各编译器自行规定;当实参表达式中带有副作用的运算符时,可能产生由于求值顺序不同而造成的二义性;[例4.6]#includein
6、用[例4.4]#includevoidswap2(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp;//形参指针所指向的变量值交换cout<<“x=”<<*x<<“y=”<<*y<7、应的实参值;引用调用比传址调用更直接。形参:引用实参:变量名引用是变量的别名对引用的操作就是对被引用的变量的操作[例4.5]#includevoidswap3(int&x,int&y){inttemp;temp=x;x=y;y=temp;//形参引用值交换cout<<“x=”<8、数参数的求值顺序C++没有规定函数调用时实参的求值顺序,各编译器自行规定;当实参表达式中带有副作用的运算符时,可能产生由于求值顺序不同而造成的二义性;[例4.6]#includein
7、应的实参值;引用调用比传址调用更直接。形参:引用实参:变量名引用是变量的别名对引用的操作就是对被引用的变量的操作[例4.5]#includevoidswap3(int&x,int&y){inttemp;temp=x;x=y;y=temp;//形参引用值交换cout<<“x=”<8、数参数的求值顺序C++没有规定函数调用时实参的求值顺序,各编译器自行规定;当实参表达式中带有副作用的运算符时,可能产生由于求值顺序不同而造成的二义性;[例4.6]#includein
8、数参数的求值顺序C++没有规定函数调用时实参的求值顺序,各编译器自行规定;当实参表达式中带有副作用的运算符时,可能产生由于求值顺序不同而造成的二义性;[例4.6]#includein
此文档下载收益归作者所有