c++ * vs & 在函数声明中

标签 c++ pointers reference pass-by-reference

<分区>

Possible Duplicate:
Difference between pointer variable and reference variable in C++

什么时候应该将我的变量声明为指针而不是按引用传递的对象?它们在汇编中编译成相同的东西(至少在运行时渐近地)所以我什么时候应该使用哪个?

void foo(obj* param)
void foo(obj& param)

最佳答案

我的规则很简单:当你想表明值是可选的,因此可以是 0 时使用 *。

从规则中排除:周围的所有 _obj_s 都存储在容器中,并且您不想通过使用 foo(*value); 而不是 foo 让您的代码看起来丑陋(值); 因此,为了表明该值不能为 0,请将 assert(value); 放在函数开头。

关于c++ * vs & 在函数声明中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1081811/

相关文章:

vba - 如何使用间接引用在vba中选择单个单元格或范围

c++ - 带有 if 语句的指针(地址)

c++ - 合并两个 vector 而不在 C++ 中对它们进行排序

c++ - 使用 OpenMP 并行化 for 循环

c++ - 通用链表指针访问

c - 为什么下面的代码可以工作?

c# - 引用 dll 而不复制它们 C#

c++ - QDesktopServices::openUrl() 无法在 Windows 上的 chrome 中打开页面。解决方法?

C++ 特征问题

c++ - 指向具有可变参数列表的函数的函数指针