有什么区别?因为这个:
int Value = 50;
int *pValue = &Value;
*pValue = 88;
和引用版本做同样的事情:
int Value = 50;
int &rValue = Value;
rValue = 88;
哪个更好用?谢谢。
最佳答案
在这种情况下,它们是等价的。
你使用哪个并不重要,也不是“最好的”。
如果您真的想在它们之间进行选择,那么引用可能更惯用。我通常尽可能地坚持引用,因为我的强制症喜欢它:它们感觉“更紧密”,不能重新绑定(bind)(无论你是否注意到),并且不需要取消引用来获得值(value)。
但我不知道对于此类案件的问题有任何普遍共识。
另外请注意,如果您的实现不使用指针实现引用,则两者可能无法编译为相同的代码,尽管我知道没有这样的实现,而且您无论如何也不会注意到差异。
关于c++ - 引用与指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21884825/