C++ - 了解引用和内存地址

Dan*_*ner 2 c++ memory reference

我看过一些参考和内存地址之间的技术差异在这里,但我试图找到一个更抽象的方式来了解他们.考虑一下代码:

char foo = 'a';
char& bar = foo;
char& bar2 = *(char*)(&foo);
cout << bar << endl;
cout << bar2 << endl;
Run Code Online (Sandbox Code Playgroud)

两种情况下的输出都是'a'.那么从这里得出的结论是,引用(bar2)只是一个带有关联类型(char)的内存地址(&foo)吗?或者这种解释是否分崩离析?

R S*_*ahu 5

referenceC++中最简洁的定义是:

它声明一个命名变量作为引用,即已经存在的对象或函数的别名.

  1. 它的值与它是别名的对象相同.
  2. 它的地址(由&运算符获得)与作为别名的对象的地址相同.