引用和指针
传指针
#include <iostream>
using namespace std;
void Swap(int* left, int* right)
{
int temp = *left;
*left = *right;
*right = temp;
}
int main() {
int a=1,b=2;
Swap(&a,&b);
cout<<a<<" "<<b<<endl;
return 0;
}
传引用
#include <iostream>
using namespace std;
void Swap(int& left, int& right)
{
int temp = left;
left = right;
right = temp;
}
int main() {
int a=1,b=2;
Swap(a,b);
cout<<a<<" "<<b<<endl;
return 0;
}
然后我们来做个实验
#include <iostream>
using namespace std;
int main() {
int a=2;
int& c=a;
cout<<c<<endl;
a=4;
cout<<c<<endl;
return 0;
}
我们定义c为a的引用,通过这样的定义,c和a表示同一对象,需要特别注意的是,引用并不产生对象的副本,仅仅是对象的同义词,因此当执行下面的语句之后