【发布时间】:2015-08-09 14:03:18
【问题描述】:
我见过这种形式的东西:
void function( A_struct &var ) {
var.field0 = 0;
// ...
}
由于var之前有&,所以我认为var是一个指针。但是在正文中,不是写var->field0,而是写var.field0。所以,我的问题是:
var不是指针吗?函数参数中写
A_struct &var和A_struct *var有什么区别?
【问题讨论】:
-
这是 C++ 参考
-
这在 C 中是非法的。你一定是在看 C++ 代码而没有意识到它。
-
那么它们在 C++ 中的区别是什么?
-
您可以将引用视为
an automatically dereferenced constant pointer,因此它几乎看起来像是变量本身的副本。您可以在任何基本的 C++ 书籍中阅读有关参考的更多信息。
标签: c pointers parameters reference dereference