【发布时间】:2012-05-08 18:01:42
【问题描述】:
可能重复:
What are the differences between pointer variable and reference variable in C++?
例如,我有两个功能做同样的事情:
int func(int &a)
{
return a+1;
}
和
int func2(int *a)
{
return *a+1;
}
在调用这些函数中的任何一个时,使用 func 比 func2 有什么优势?
【问题讨论】:
-
在我看来,唯一的优势是能够接受 NULL 参数。关于这个主题已经有一些很好的问题了。
-
我之所以问这个问题是因为我们小组项目中的一位朋友坚持我们使用引用而不是指针,声称引用比指针“优越”。我想我会坚持使用指针,因为在做了一些 C 项目后我已经习惯了。
-
@user803253:是的,只要你可以使用它们,它们就更胜一筹——它们承认的错误比指针少。
-
@user803253:这不是能够很好地管理指针的问题。这是一个防止每个人都犯的“愚蠢”错误的问题。例如,passing null pointers to functions that require pointers to data。如果编译器可以为您捕捉错误,为什么不利用这一事实呢?