我看到过这种形式的东西:
void function( A_struct &var ) {
var.field0 = 0;
// ...
}
由于&
之前有var
,我认为var
是指针。但在身体中,不是写var->field0
,而是写var.field0
。所以,我的问题是:
var
不是指针吗?
在函数参数中写A_struct &var
和A_struct *var
有什么区别?
答案 0 :(得分:4)
答案 1 :(得分:1)
您的问题实际上与C++
void function(A_struct &var)
对C
无效,因为在C
中它用于获取变量的地址。在C++
中,它是一种变量,称为reference
。您可以在here
void function(A_struct *var)
和C
允许 C++
,因为它是一个指针,用于保存A_struct
类型变量地址的地址。