|
【实训目的】传值调用——实参与形参
【第 1 步】实训内容介绍
1. 实训内容介绍
2. 传值调用——实参与形参
3. 实训结束
【Jitor 校验第 1 步】我已阅读实训内容介绍 // 送分题。直接点击。
【第 2 步】传值调用——实参与形参
1、在项目 cpp5 中创建名为 cpp5code 的源代码文件,如果项目不存在,则先创建项目,然后创建源代码文件。
2、将下述代码复制到 cpp5code 中:
#include <iostream.h>
void swapByVal(int, int);
void main(void) {
int a, b;
cout << "输入两个整数: ";
cin >> a >> b;
cout << "in main(1) {a=" << a << ", b=" << b << "}\n";
swapByVal(a, b);
cout << "in main(2) {a=" << a << ", b=" << b << "}\n";
}
// 在这里补写代码
在swapByVal() 函数中添加代码,功能是将形参 a 和 b 的值对调。
代码见简明教程【例5-7】第 1 步代码,运行结果如下:
输入两个整数: 3 5
in main(1) {a=3, b=5}
in swapByVal(1) {a=3, b=5}
in swapByVal(2) {a=5, b=3}
in main(2) {a=3, b=5}
Press any key to continue
仔细观察运行结果,从结果中看到,在swapByVal() 函数内,确实是将形参 a 和 b 的值对调了,
但是将没有将实参 a 和 b 的值对调,也就是说,在这种情况下,函数内部对形参的修改,
不会影响函数外部实参的值,这就是为什么称其为传值调用。
代码如下:
// 从下一行开始复制。
#include <iostream.h>
void swapByVal(int, int);
void main(void) {
int a, b;
cout << "输入两个整数: ";
cin >> a >> b;
cout << "in main(1) {a=" << a << ", b=" << b << "}\n";
swapByVal(a, b);
cout << "in main(2) {a=" << a << ", b=" << b << "}\n";
}
void swapByVal(int a, int b) {
cout << "in swapByVal(1) {a=" << a << ", b=" << b << "}\n";
int t = a;
a = b;
b = t;
cout << "in swapByVal(2) {a=" << a << ", b=" << b << "}\n";
}
// 一直复制到上一行结束。
【Jitor 校验第 2 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。
【第 3 步】实训总结
本次实训学习了传值调用,这时函数内部对形参的修改,不会影响函数外部实参的值。
【Jitor 校验第 3 步】我已阅读实训总结 // 送分题。直接点击。
仍有疑问 ? 联系QQ 9429444(陈海云) : 返回首页 |