c ++引用/指针

时间:2010-12-06 20:07:27

标签: c++ pointers reference

  

可能重复:
  Difference between pointer variable and reference variable in C++

前几天我看到了这个简单的代码,我认为自己是一个有指针的初学者,尽管我有一年半的c ++经验。无论如何......

之间的区别是什么
int a = 0; 
int &b = a; 

int a = 0
int *p = &a; 

显然,p保存a的地址,但b是对a的引用,这意味着我可以用b改变a的值。但我也可以用p做同样的事情。那么优点和缺点是什么?

2 个答案:

答案 0 :(得分:2)

  • 必须始终初始化参考
  • 参考不能为空
  • 初始化后,无法将引用更改为其他对象的别名。

答案 1 :(得分:0)

我认为这取决于您计划如何在程序中使用变量。两个陈述似乎都做同样的事情(在这个有限的范围内)。

第一种方法似乎(在我看来)编程实践不佳,因为在程序后期可能不会明显改变b的值也会改变a的值。在第二种情况下,至少已知p是一个指针,所以你应该期望改变它指向的值所带来的副作用。