#include <iostream> // std::cout
using namespace std;
int main()
{
char i=97;
char& r1 = i; //r1是i的引用,二者等同
int&& r2 = i; //r2不是i的右值引用,是某临时对象的引用。伪代码:int tmp(i); int&& r2 = tmp;
const int& r3 = i; //const int& 同样具有捕捉右值的能力。伪代码:int tmp(i); int&& r3 = tmp;
//char&& r4 = i; //编译失败,r4不能捕捉左值
cout << " i=" << (void*)addressof(i)<<endl;
cout << "r1=" << (void*)addressof(r1)<<endl;
cout << "r2=" << (void*)addressof(r2)<<endl;
cout << "r3=" << (void*)addressof(r3)<<endl; //通过打印地址,证明了临时对象tmp的存在
return 0;
}
本文详细解析C++中引用、右值引用和常量引用的概念及区别,通过代码实例展示了如何在C++中使用引用进行高效操作。包括引用的基本用法、引用与指针的比较、右值引用的应用场景、常量引用的限制与使用等。通过实例代码帮助读者理解并掌握C++中引用的高级特性。

被折叠的 条评论
为什么被折叠?



