【声明】本文无技术含量!在博客园上回复某个帖子,招来他的非议,我不想去细究这个人的治学态度,不想去问去管他到底有没有修改过自己的文章,对我来说没必要。我只能说不负责任,态度自大的,不严谨的人是令我失望的。但是对于一个问题,这里涉及到了“引用”,这是C++引入的一种新的形式,可以说是给程序员的一个语法上的好处,但是我翻看了BS的《The C++ Programming Lanuage》,并没有看到对引用的实现的解释。所以虽然我一直默认为引用是这样实现的,但在对别人提出自己的观点之前,我需要验证自己的“猜想”。这个问题很好去验证,所以我先给出一个最简单的试验:用一个 int 类型的引用来说明问题。
输入下面的代码,我使用的是VC6.0:
void ModifyNum(int& x) { x = x + 10; } int main(int argc, char* argv[]) { int a = 5; ModifyNum(a); printf("a=%d\n", a); return 0; }
上面的代码将输出 a = 15,然后用 IDA 打开编译后的 exe 文件,查看函数 main 和 ModifyNum 的代码:
.text:00401060 main proc near ; CODE XREF: j_main