在c ++中使用引用而不是指针有什么好处吗?

Kan*_*Yoo 4 c++ pointers reference

可能重复:
C++中指针变量和引用变量之间有什么区别?

例如,我有两个执行相同操作的函数:

int func(int &a)
{
   return a+1;
}
Run Code Online (Sandbox Code Playgroud)

int func2(int *a)
{
   return *a+1;
}
Run Code Online (Sandbox Code Playgroud)

在调用这些函数中的任何一个函数时,使用func over func2有什么好处?

Mar*_*ers 11

  • 引用不能直接赋值为null,但指针可以是.
  • 无法重新分配引用以指向其他内容,但指针可以是.

根据情况,这些都可以是优点或缺点.

  • @VladLazarenko如果我没有弄错,构造一个`null`引用是未定义的行为. (3认同)
  • @VladLazarenko仅在格式错误的程序中可以引用为“ NULL”,因此说它们不能为“ NULL”基本上是正确的。 (2认同)
  • @Kaz 他的意思是指针的语法糖。 (2认同)
  • @SethCarnegie,我的态度是由一个多天的调试会话着色的,该会话由一个结果为NULL的引用引起.它甚至不是我的代码! (2认同)