C++ 以下c++;关于通过引用调用的代码 #包括 使用名称空间std; 无效交换(int*x,int*y) { int temp=*x; *x=*y; *y=温度; cout

C++ 以下c++;关于通过引用调用的代码 #包括 使用名称空间std; 无效交换(int*x,int*y) { int temp=*x; *x=*y; *y=温度; cout,c++,C++,这两个代码做相同的事情,并且都使用引用调用将变量传递给swap函数。但是方法不同。第一个代码使用指针来实现这一目标,而第二个代码使用引用。在第二个代码的swap函数签名中,您可以看到&符号,表示输入参数必须是地址而不仅仅是值。通过调用swap函数,参数的地址将自动传递给swap函数,而不是其值。 进一步阅读,请看。欢迎使用堆栈溢出!听起来您可以使用。在这篇文章中,他们将详细介绍指针和引用如何工作,以及它们如何允许您影响调用站点中的变量。地址不会仅交换值。当我看到void swap时,这里的主要区

这两个代码做相同的事情,并且都使用引用调用将变量传递给swap函数。但是方法不同。第一个代码使用
指针来实现这一目标,而第二个代码使用
引用。在第二个代码的swap函数签名中,您可以看到
&
符号,表示输入参数必须是地址而不仅仅是值。通过调用swap函数,参数的地址将自动传递给swap函数,而不是其值。
进一步阅读,请看。

欢迎使用堆栈溢出!听起来您可以使用。在这篇文章中,他们将详细介绍指针和引用如何工作,以及它们如何允许您影响调用站点中的变量。地址不会仅交换值。当我看到
void swap时,这里的主要区别是可读性(It*x,int *y)< /C> >我想“这个例程接受两个参数,一个int指针或nulpPTR,另一个int指针或nulpPTR”。但是如果我将null pTR传递给任一个参数,事情就变成了梨形的,而 ValueSchange(int和x,int和y)< /> >接受两个可变引用(并且按照C++,引用不能是null pTR)。“如何交换地址"地址不交换,这些地址的对象内容被交换。在C++中,对象的地址是不可能改变的。这里没有危险:在C++标准库中存在一个<代码> STD::SWIFT <代码>函数。它可能会被作为一个包含库头的副作用带进您的程序中。使用命名空间std;
将删除
std
命名空间的保护,并使
std::swap
swap
冲突,因为
std::swap
现在可以称为
swap
#include<iostream>

using namespace std;

void swap(int *x, int *y)
{
    int temp=*x;
    *x=*y;
    *y=temp;
    cout<<*x<<endl<<*y<<endl<<"Bro"<<endl;
}


int main()
{
    int a=10,b=5;
    swap(&a,&b);
    cout<<"HI"<<endl;
    cout<<a<<endl<<b<<endl;
    return 0;
}
#include<iostream>

using namespace std;
void swap(int &x, int &y)
{
    int temp=x;
    x=y;
    y=temp;
    cout<<x<<endl<<y<<endl<<"Bro"<<endl;
}


int main()
{
    int a=10,b=5;
    swap(a,b);
    cout<<"HI"<<endl;
    cout<<a<<endl<<b<<endl;
    return 0;
}