【发布时间】:2012-09-18 08:59:21
【问题描述】:
void f (int& a)
{
a ++;
}
int main ()
{
int b = 5;
f(b);
cout << b << endl; //prints 6
}
当我看到 C++ 中的引用语法时,最初看起来变量 b(如果它是一个对象)将被复制到 f 中。这些引用实际上是如何在幕后工作的? (一些简单的 asm 会很棒。)
【问题讨论】:
-
引用只是原始变量的别名。对引用的任何修改都会修改被引用的变量。不涉及复制。如何实现引用的确切细节未指定 按照标准。话虽如此,大多数编译器在底层只是使用指针来实现引用。
-
您的编译器将为您提供示例 asm -- 找到用于输出未汇编代码的选项或用于反汇编其二进制输出的工具。
标签: c++ pointers assembly reference