C++ 以下c++;关于通过引用调用的代码 #包括 使用名称空间std; 无效交换(int*x,int*y) { int temp=*x; *x=*y; *y=温度; cout
这两个代码做相同的事情,并且都使用引用调用将变量传递给swap函数。但是方法不同。第一个代码使用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函数,而不是其值。
进一步阅读,请看。欢迎使用堆栈溢出!听起来您可以使用。在这篇文章中,他们将详细介绍指针和引用如何工作,以及它们如何允许您影响调用站点中的变量。地址不会仅交换值。当我看到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;
}