初识引用
变量名是该变量在内存中的名称,你可以把引用当成是变量在内存中的小名,因此,你可以通过变量名或引用来访问该变量的内容例如
string a = “Hello World!”;
为变量a声明引用变量
string& y = a;
&读作引用,因此可以读作“y是一个初始化为a的引用”
实例:
#include
using namespace std;
int main()
{
string a = “Hello World!”;
string& y = a;
cout << a << endl;// 原变量
cout << &y << endl; // 内存地址
cout << y << endl; // 值
return 0;
}
以上结果输出为
Hello World! // 原变量
0x61fef0// 内存地址
Hello World! // 值
把引用作为参数
实例:
#include <iostream>
using namespace std;
// -- 声明函数(不要纠结函数名)
void YinYong( string& i, string& y );
int main()
{
// -- 声明两个变量
string i = "YinYong";
string y = "YinYong";
// -- 修改前的值
cout << i << endl;
cout << y << endl;
// -- 分割线
cout << "------------------------------" << endl;
YinYong( i, y );
// -- 修改后的值
cout << i << endl;
cout << y << endl;
return 0;
}
// -- 不要纠结函数名
void YinYong( string& i, string& y )
{
// -- 修改地址中的值
i = "Hello world!";
y = "Hello world!";
}
编译并运行后打印结果
(分割线前卫原始值,分割线后为改变后的值)
总结:
引用其实引用的是该变量的地址,正如以上例子,i和y被作为参数传到函数 ‘YinYong’,传的并不是i和y的值,而是它们在内存中的地址,如果你修改参数,修改的其实是这个地址中的内容…所以打印前与打印后的结果不同