【发布时间】:2018-11-16 11:00:31
【问题描述】:
例如在
int *a = 5;
MyFunc(&a);
'&' 的幕后工作是什么?它只是创建一个指向指针的指针并自动推迟它吗?还是在做一些不同的事情。
有没有办法在 C++ 中通过“真实”引用传递,或者一切都是按值传递的指针?
【问题讨论】:
-
我在这里看不到任何参考资料。
&a不是引用,它是a的地址,类型为int**。
例如在
int *a = 5;
MyFunc(&a);
'&' 的幕后工作是什么?它只是创建一个指向指针的指针并自动推迟它吗?还是在做一些不同的事情。
有没有办法在 C++ 中通过“真实”引用传递,或者一切都是按值传递的指针?
【问题讨论】:
&a 不是引用,它是a 的地址,类型为int**。
C++ 中的引用基本上是作为指针实现的。我认为这就是它们在所有语言中的实现方式,而不仅仅是 C++。
这里有一个较早的问题有更好的答案:How is reference implemented internally?
【讨论】: