编写一个C++程序分别编写三个函数完成两个数据的交换( (例如,输入 3、4, 输出 4、3)。对三个函数的要求为:分别使用值传递、引用传递和指 针传递,实现 实际参数到 形式参数的传递。在主函数中分别调用三个 函数,实现数据的交换,并输出。
时间: 2023-11-27 17:55:06 浏览: 52
计算输入三个数的最大公约数-C++程序设计
以下是满足要求的C++程序:
```c++
#include <iostream>
using namespace std;
// 声明三个函数
void swapByValue(int a, int b);
void swapByReference(int& a, int& b);
void swapByPointer(int* a, int* b);
int main()
{
int num1 = 3, num2 = 4;
cout << "交换前:" << num1 << " " << num2 << endl;
// 分别调用三个函数
swapByValue(num1, num2);
cout << "值传递交换后:" << num1 << " " << num2 << endl;
swapByReference(num1, num2);
cout << "引用传递交换后:" << num1 << " " << num2 << endl;
swapByPointer(&num1, &num2);
cout << "指针传递交换后:" << num1 << " " << num2 << endl;
return 0;
}
// 使用值传递实现交换
void swapByValue(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
// 使用引用传递实现交换
void swapByReference(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
// 使用指针传递实现交换
void swapByPointer(int* a, int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
```
运行结果:
```
交换前:3 4
值传递交换后:3 4
引用传递交换后:4 3
指针传递交换后:3 4
```
阅读全文