【发布时间】:2022-01-13 07:59:48
【问题描述】:
这两个参数声明和调用方法有什么区别(如果有的话)?
#1:
void MyFunction(MyStruct& msParam)
{
.....
}
MyStruct ms;
MyFunction(ms);
还有#2:
void MyFunction(MyStruct* msParam)
{
.....
}
MyStruct ms;
MyFunction(&ms);
它们似乎都传递了一个指向变量“ms”的指针,所以我猜测它们在功能上是相同且同样有效的,但在某些情况下是首选的一种风格吗?
【问题讨论】:
-
第一种情况至少不是C代码。该函数有一个对 C++ 有效但对 C 无效的引用 arg。
标签: c++ c pointers reference function-definition