可能重复:
What are the differences between pointer variable and reference variable in C++?
Pointer vs. Reference
要在C ++中进行逐个引用调用,我想我可以使用这两个中的任何一个:
int f(int *x);
int g(int &x);
他们会被这样称呼:
int *w;
f(w);
g(*w);
int y;
f(&y);
g(y);
函数f
和g
是否存在差异?我应该能够在x
指针中使用int*
,在两个函数中使用*x
作为int
。那有什么区别?
答案 0 :(得分:3)
这大部分都是品味问题。但是有一个重要的区别。指针(*
)可以具有空值,而引用不能为空,并且始终必须引用有效对象。
答案 1 :(得分:2)
引用不能为NULL,因此您无需检查。否则,它可能只是语法糖(至少对于简单的用例)。检查程序的反汇编以查看。