可能重复:
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做同样的事情。那么优点和缺点是什么?
答案 0 :(得分:2)
答案 1 :(得分:0)
我认为这取决于您计划如何在程序中使用变量。两个陈述似乎都做同样的事情(在这个有限的范围内)。
第一种方法似乎(在我看来)编程实践不佳,因为在程序后期可能不会明显改变b的值也会改变a的值。在第二种情况下,至少已知p是一个指针,所以你应该期望改变它指向的值所带来的副作用。