C++ 为什么赢了';我的价值观不能互换吗?

C++ 为什么赢了';我的价值观不能互换吗?,c++,function,swap,C++,Function,Swap,我应该写一个函数名double\u swap,它接受两个double作为参数,并交换存储在这些参数中的值。函数不应该返回任何值,所以我知道这意味着它必须是一个void函数 例如,如果执行以下代码片段 int main() { double x = 4.8, y = 0.7; double_swap(x,y); cout<<"x = "<<x<<" y = "<<y; } intmain() { 双x=4.8,y=0.7; 双_交换(x,y); c

我应该写一个函数名double\u swap,它接受两个double作为参数,并交换存储在这些参数中的值。函数不应该返回任何值,所以我知道这意味着它必须是一个void函数

例如,如果执行以下代码片段

int main()
{
double x = 4.8, y = 0.7;
double_swap(x,y);
cout<<"x = "<<x<<" y = "<<y;
}
intmain()
{
双x=4.8,y=0.7;
双_交换(x,y);

cout您需要通过引用传递变量,以便将函数中的修改应用于调用站点中的变量。现在,您所做的只是修改函数结束后被销毁的副本

改变

void double_swap(double x, double y)

另外,不用硬编码,而是让我们使用

void double_swap(double& x, double& y)
{
    double temp = x;
    x = y;
    y = temp;
}
您也可以为函数参数使用指针,但是您的调用站点必须更改为
double\u swap(&x,&y);
,并且您必须记住引用函数中的指针


尽管我们可以使用并让它为我们执行所有这些操作,但我们不需要这样做。

您需要通过引用传递变量,以便将函数中的修改应用于调用站点中的变量。现在,您所做的是修改一旦函数结束就会被销毁的副本

改变

void double_swap(double x, double y)

另外,不用硬编码,而是让我们使用

void double_swap(double& x, double& y)
{
    double temp = x;
    x = y;
    y = temp;
}
您也可以为函数参数使用指针,但是您的调用站点必须更改为
double\u swap(&x,&y);
,并且您必须记住引用函数中的指针


而不是做这一切,我们可以只使用它,让它为我们做这个。

< P>在C++中调用函数时,有3种方法传递参数。第一种方法是通过复制,只在参数中复制变量,然后删除它们。
 void double_swap(double x, double y)
第二个是通过引用,其中参数引用实变量(您想要什么)

最后一个是通过地址,在这里传递变量的地址

   void double_swap(double* x, double* y)

在C++中调用函数时,有3种方法传递参数。第一种是用拷贝,只在参数中复制变量,然后删除它们。

 void double_swap(double x, double y)
第二个是通过引用,其中参数引用实变量(您想要什么)

最后一个是通过地址,在这里传递变量的地址

   void double_swap(double* x, double* y)

车身也有问题车身也有问题