第4章函数 例44引用的使用 include <iostream. h> void maino 定义引用b,并将其作为a的别名 int a=1: int C=10 将c的值赋给b,不是将b作为c的别名 int &b= a cout <<a<<","<<b<<,<<C<<endl b= C cout<<a<<","<<b<<","<<c<<endl b=20 cout<<a<<","<<b<<","<<c<<end 程序运行结果: 1,10 10,10,10 20,20,10
例4.4 引用的使用 #include <iostream.h> void main() { int a=1; int c=10; int &b = a; cout << a << ", " << b <<", " << c << endl; b = c; cout << a << ", " << b <<", " << c << endl; b = 20; cout << a << ", " << b <<", " << c << endl; } 程序运行结果: 1,1,10 10,10,10 20,20,10 定义引用b,并将其作为a的别名 第4章 函数 将c的值赋给b,不是将b作为c的别名
第4章函数 4.2函数的参数传递 422使用引用(续一) 2.引用作为函数的参数 例4.5写一个函数,用引用作为参数,交换函数中两个变量 的值。 include <iostream h> void swap(int &x, int &y) void swap(intx, int y) void maino int tem p, temp=x; int a, b: X=y; a=10; y= temp b=20 swap(a, b; cout≤<a<","≤<b≤<endl; 程序运行结果为: 20,10
4.2 函数的参数传递 4.2.2 使用引用(续一) 2. 引用作为函数的参数 例4.5 写一个函数,用引用作为参数,交换函数中两个变量 的值。 第4章 函数 #include <iostream.h> void swap(int x, int y); void main() { int a, b; a = 10; b = 20; swap(a, b); cout << a << ", " << b << endl; } void swap(int &x, int &y) { int temp; temp = x; x = y; y = temp; } 程序运行结果为: 20,10
第4章函数 4.2函数的参数传递 422使用引用(续二) 例4.5程序运行过程中参数值的变化图示 a 10 20b 1020 20 temp 10 temp 10 temp 10 注意:引用作参数时,函数的实参与形参在内存中共用存储单元,因此形参的 变化会使实参同时变化 返回
4.2 函数的参数传递 4.2.2 使用引用(续二) 例4.5程序运行过程中参数值的变化图示 第4章 函数 a 10 x b y 20 a x b y temp 10 20 a x b y temp 10 10 a x b y temp 10 20 20 20 10 注意:引用作参数时,函数的实参与形参在内存中共用存储单元,因此形参的 变化会使实参同时变化。 返 回
第4章函数 4.3函数的嵌套调用 函数的嵌套调用是指,在执行被调用函数时,被调用函数又 调用了其它函数。 嵌套调用的执行过程: main(函数 f1O函数 f2(函数 调用f1O函数 调用f2(函数 后续语句; 后续语句; 结束 返回 返回
4.3 函数的嵌套调用 函数的嵌套调用是指,在执行被调用函数时,被调用函数又 调用了其它函数。 嵌套调用的执行过程: 第4章 函数
第4章函数 例4.6求1!+2!+.n! include <iostream h> long fl(int n) ∥求1!+2!+…+n! long fl(int n) long f2(int m) void maino long sum =0; for(i=1; i<=n; 1++) sum + f20 int n: return sum; long s; cout<<"请输入n的值 long f2(int m 求m! cin >>n: s= f1(n ) int 1; cout≤≤s<<endl; longs= 1; for(i=l; i<=m; i++) 程序运行结果 return s 请输入n的值:5 153
例4.6 求1! + 2! + … n! #include <iostream.h> long f1(int n); long f2(int m); void main() { int n; long s; cout << "请输入n的值:"; cin >> n; s = f1(n); cout << s << endl; } 第4章 函数 long f1(int n) // 求1!+2!+…+n! { int i; long sum = 0; for(i=1; i<=n; i++) sum += f2(i); return sum; } long f2(int m) // 求m! { int i; long s = 1; for(i=1; i<=m; i++) s *= i; return s; } 程序运行结果: 请输入n的值:5 153