第四章函数与作用域

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、函数的定义
<类型> <函数名>(<参数表>) <函数体>
函数的具体实现
第四章函数和作用域
例: int add( int x, int y ) { int z; z=x+y; return z; }
void nothing( ) {}
第四章函数和作用域
二、函数的说明(声明) 原型说明
<类型> <函数名>(<参数表>) ;
}
第四章函数和作用域
x=9, y=5 a=5, b=9
一、函数的传值调用
1. 传值调用
2. 传址调用
实参:地址值(指针) 形参:指针
➢ 将实参的地址值赋给对应的形参指针,使 形参指针指向实参;
➢ 通过改变形参所指向的变量值来影响实参!
第四章函数和作用域
[例4.4] #include<iostream.h> void swap2(int *x, int *y) { int temp;
fun2( ); cout<<“It is back in main.”<<endl; }
void fun1( ) { cout<<“It is in fun1.”<<endl;
fun3( ); cout<<“It is back in fun1.”<<endl; }
void fun2( ) { cout<<“It is in fun2.”<<endl;
§4.1 函数的定义和说明
一、函数的定义
<类型> <函数名>(<参数表>)
<函数体>
函数的标识
第四章函数和作用域
§4.1 函数的定义和说明
一、函数的定义
<类型> <函数名>(<参数表>)
<函数体>
函数调用时的 形式参数
• 包括参数名和参数类型(无形参时,括号不可省)
第四章函数和作用域
§4.1 函数的定义和说明
cout<<“a=”<<a<<“b=”<<b<<endl;
}
第四章函数和作用域
x=9, y=5 a=9, b=5
§4.3 函数的参数
一、函数参数的求值顺序
• C++没有规定函数调用时实参的求值顺序, 各编译器自行规定;
• 当实参表达式中带有副作用的运算符时, 可能产生由于求值顺序不同而造成的二义 性;
第四章函数和作用域
二、函数的引用调用 //C++特色
引用是变量的别名 对引用的操作就是对被引用的变量的操作
形参:引用 实参:变量名
✓ 将实参变量名赋给对应的形参引用,相当于 在被调用函数中使用了实参的别名;
✓ 通过改变引用来直接改变对应的实参值; ✓ 引用调用比传址调用更直接。
第四章函数和作用域
[例4.5]
#include<iostream.h>
形参:引用
void swap3(int &x, int &y)
{ int temp;
temp=x;
x=y;
y=temp;
//形参引用值交换
cout<<“x=”<<x<<“y=”<<y<<endl;
}
void main( )
{ int a(5), b(9); swap3(a, b); 实参:变量
temp=*x; *x=*y; *y=temp; //形参指针所指向的变量值交换 cout<<“x=”<<*x<<“y=”<<*y<<endl; x=9, y=5 } void main( ) { int a(5), b(9); swap2(&a, &b); cout<<“a=”<<a<<“b=”<<b<<endl; a=9, b=5 }
void swap1(int x, int y)
{ int temp;
temp=x;
x=y;
y=temp;
//形参值交换
cout<<“x=”<<x<<“y=”<<y<<endl;
}
void main( )
{ int a(5), b(9);
swap1(a, b);
cout<<“a=”<<a<<“b=”<<b<<endl;
例:int add(int x, int y);
• 函数定义在后、调用在先,调用前必须说明; • 函数定义在先、调用在后,可以不加说明; • 复杂调用中,常在程序头对所有被调用函数
一次性说明。
第四章函数和作用域
wenku.baidu.com
[例4.2] #include<iostream.h>
void fun1( ), fun2( ), fun3( ); void main( ) { cout<<“It is in main.”<<endl;
第四章 函数和作用域
• 函数的定义和说明 • 函数的调用 • 函数的参数 • 内联函数 • 函数重载 • 函数的嵌套调用和递归调用 • 作用域 • C++的系统函数
第四章函数和作用域
§4.1 函数的定义和说明
一、函数的定义
<类型> <函数名>(<参数表>)
<函数体>
函数返回值的 类型
第四章函数和作用域
第四章函数和作用域
[例4.6]
#include<iostream.h> int add(int x, int y) {
return x+y; } void main( ) {
int x(4), y(6); int z=add(++x, x+y); cout<<z<<endl; }
int a=3;
int b=5;
实参
int c=add(a,b);
//实参与形参个数相等,类型相同
}
✓ 函数调用表达式的值是函数的返回值;
✓ 函数调用表达式的类型是函数的类型;
第四章函数和作用域
❖ 函数的返回值通过返回语句实现 return <表达式>; 或 return;
1) <表达式>的值作为函数的返回值; 2) <表达式>的类型自动转换为函数类型; 3) 程序执行的控制权转向调用函数; 注:无返回值的函数用“void”说明类型!
fun1( ); cout<<“It is back in fun2.”<<endl; }
void fun3( ) { cout<<“第It四is章i函n 数fu和n作3.用”<域<endl; }
§4.2 函数的调用
❖ 函数调用通过一个表达式实现:
<函数名>(<实参表>)
void main( )
{
第四章函数和作用域
一、函数的传值调用
• 变量的两种值:变量本身值和变量地址值; • 传值调用分为:传值调用和传址调用;
1. 传值调用
实参:常量、变量值或表达式值 形参:变量
✓ 将实参值拷贝一个副本给对应的形参; ✓ 形参值的改变不影响实参!
第四章函数和作用域
[例4.3]
#include<iostream.h>
相关文档
最新文档