在C++ 中 & 有两种意思,一种是表示取地址 ,另一种表示 引用
个人理解引用就是变量都指向同一个内存地址
实际看一下这两种的区别
取地址
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main(){
int n1 = 99;
//这种赋值操作表示 将 n1 的地址取出并赋给 n2(int 类型的指针变量,它也有自己的内存地址)
int *n2 = &n1;
*n2 = 100;//因为指针都是指向 n1的地址,所以这里修改后 n1 的值也会发生变化
cout<< "n1:"<< n1 << ",n2:" << n2<<endl;
cout<< "n1:"<< &n1 << ",n2:" << &n2<<endl;
return 0;
}
引用
/**
引用
*/
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
//在形参上加使用 & 表示 引用
void numberChange(int &a,int &b){
a = 3;
b = 4;
}
int main(){
//引用一
int a = 1;
int b = 2;
numberChange(a,b);
cout<< "a:" << a << ",b:"<< b << endl;
//引用二
int n1 = 99;
//作为变量出现也表示引用
int &n2 = n1;
n2 = 100;
cout<< "n1:"<< n1 << ",n2:" << n2 <<endl;
cout<< "n1:"<< &n1 << ",n2:" << &n2<<endl;
return 0;
}