test code.
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
int ref_t_1 = 10;
int& ref_t_2 = ref_t_1;
ref_t_2 = 20;
return 0;
}
vs自带的反汇编工具显示的对应汇编代码。
可以看到:
- c++引用也是分配内存的,其内存中存放的是引用变量的实际地址值(相当于同一个指针,计为ptr),对引用变量的操作是通过对类似*(ptr)的形式实现的。
- 对引用取地址操作,直接返回ptr的值即可。