【发布时间】:2019-12-26 13:31:09
【问题描述】:
我正在尝试使用传递引用交换两个数字,但它没有执行。
#include<iostream>
using namespace std;
void swap(int,int);
int main(){
int x,y;
cin>>x>>y;
swap(x,y);
cout<<"x= "<<x<<"y= "<<y;
return 0;
}
void swap(int &x,int &y){
int temp;
x=temp;
x=y;
y=temp;
cout<<"x= "<<x<<"y= "<<y;
}
编译器显示此错误:
C:\Users\amitm\AppData\Local\Temp\ccu8znRO.o:swap_reference.cpp:(.text+0x49): 未定义对 `swap(int, int)' 的引用 collect2.exe:错误:ld 返回 1 个退出状态
【问题讨论】:
-
您在声明中缺少
&标志。 -
即使你的交换函数
temp存在错误,在分配任何值之前也会复制到x
标签: c++ pass-by-reference