c++ - int f(int *i) 和 int f(int &i) 的区别

标签 c++

<分区>

Possible Duplicate:
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);

函数 fg 有区别吗?我应该能够在两个函数中将 x 作为 int* 指针和 *x 作为 int 来使用.那有什么区别呢?

最佳答案

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

关于c++ - int f(int *i) 和 int f(int &i) 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13975788/

相关文章:

c++ - BOOST 库 c++ 的问题

c++ - 有没有办法仅通过名称来检测重载的成员函数? (不检测名称)

java - 如何将 SWIGTYPE_p... 重命名为更友好的名称?

c++ - GCC -E -MD 有错误还是我遗漏了什么?

C++ 将 unicode CString 或 wchar_t 转换为 LPBYTE

c++ - 缺少类型说明符错误

c++ - 如何在MFC中捕获帧

c++ - 根据分隔符分割字符串

c++ - 模板类特化缺少成员

C++ 和 R : Create a . so 或 .dll