C++ SWAP 函数什么都不做?

C++ SWAP Function does nothing?

出于某种原因,这个 returns 的原始值,有人可以告诉我为什么吗?谢谢你!我设置了温度,不确定这是否正确,因为 num1 和 num2 需要设置为相等,如果我不设置,它们都将保持 1 值。

代码:

#include <iostream>
using namespace std;

void swap1(double& num1, double& num2);
void swap2(double& num1, double& num2);

double num1, num2;

int main(){
    cout << "Give me two numbers to swap: ";
    cin >> num1 >> num2;

    cout << "Original: " << num1 << ", " << num2 << endl;
    void swap1(double& num1, double& num2);
    cout << "First swap: " << num1 << ", " << num2 << endl;
    void swap2(double& num1, double& num2);
    cout << "Second swap: " << num1 << ", " << num2 << endl;


}

void swap1(double& num1, double& num2){
    double temp1;
    temp1 = num1;
    num1 = num2;
    num2 = temp1;
}

void swap2 (double& num1, double& num2){
    double temp2;
    temp2 = num1;
    num1 = num2;
    num2 = temp2;
}

输出:抱歉格式错误!

Running /home/ubuntu/workspace/ASSIGN#31.cpp
Give me two numbers to swap: 10 20
Original: 10, 20
First swap: 10, 20
Second swap: 10, 20
cout << "Original: " << num1 << ", " << num2 << endl;
void swap1(double& num1, double& num2);

这不调用swap1。这是一个(重新)声明,而不是函数调用。改用这个:

swap1(num1, num2);

变化:

 void swap1(double& num1, double& num2);
 void swap2(double& num1, double& num2);

在你的主要功能中:

swap1(num1, num2);
swap2(num1, num2);

它应该可以工作,因为您使用的是函数,而不是在主函数中声明它。