【实训5-7】传值调用——实参与形参
(总分11)


 【实训目的】传值调用——实参与形参   

【第 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(陈海云) : 返回首页