0

可能重复:
C++ 中的指针变量和引用变量有什么区别?
指针与参考

要在 C++ 中进行引用调用,我想我可以使用这两个中的任何一个:

int f(int *x);
int g(int &x);

他们会这样称呼:

int *w;
f(w);
g(*w);

int y;
f(&y);
g(y);

功能有区别fg?我应该能够x作为int*指针和两个函数*x的内部使用。int那么区别是什么呢?

4

2 回答 2

3

这大部分是口味问题。但是有一个重要的区别。指针 ( *) 可以具有空值,而引用不能为空,并且必须始终引用有效对象。

于 2012-12-20T15:52:28.380 回答
2

引用不能为 NULL,因此您不必检查它。否则,它可能只是语法糖(至少对于简单的用例)。检查你的程序的反汇编看看。

于 2012-12-20T15:52:20.220 回答