c语言 - 函数参数中的 * 和 & 有什么区别?



我见过这样的东西:

void function( A_struct &var ) {
   var.field0 = 0;
   // ...
}

因为var前面有&,所以我认为var是一个指针。但在正文中,不写var->field0,而写var.field0。所以,我的问题是:

  1. var不是指针吗?

  2. 在函数参数中写A_struct &varA_struct *var有什么区别?

A_struct &var这样的语法在C的上下文中是无效的。

C++的情况下用于表示通过引用传递

相关:更多详细信息请参见此问题和相关答案

你的问题实际上与C++有关

void function(A_struct &var)C无效,因为在C中它用于获取变量的地址。在C++中,它是一种称为reference的变量类型。你可以在这里看到一个例子

void function(A_struct *var)CC++中是允许的,因为它是一个指针,它保存着A_struct类型变量的地址。

相关内容

  • 没有找到相关文章

最新更新