![]() |
1
26
引用的语义如下:
与其他答案一样,下面的C++ FAQ是一行答案:可能的引用,需要时的指针。 与指针相比,它的一个优点是需要显式转换才能传递null。 不过,这还是有可能的。 在我测试过的编译器中,没有一个会发出以下警告:
|
![]() |
2
6
事实上,大多数编译器为两个函数调用发出相同的代码,因为引用通常使用指针实现。 按照这种逻辑,当在函数体中使用(非const)引用类型的参数时,生成的代码将仅对参数的地址进行静默操作,并取消对它的引用。此外,当遇到对此类函数的调用时,编译器将生成传递参数地址的代码,而不是复制其值。 基本上,引用和指针没有太大的不同 从实现的角度来看, 主要(也是非常重要的)区别在于哲学: 引用就是对象本身, 只是换个名字而已。
与指针相比,引用有更多的优点(例如,它们不能
|
![]() |
3
4
pass by pointer是在c中传递“by reference”的唯一方法,所以您仍然可以看到它使用了很多。 空指针是表示参数未使用或无效的方便约定,因此在这种情况下使用指针。 引用一旦设置就无法更新,因此如果需要重新分配,请使用指针。
在没有充分理由不做的情况下,最好找一个推荐人。成功
|
![]() |
4
4
Here 这是一篇很好的文章-“尽可能使用引用,必要时使用指针。” |
![]() |
5
2
始终使用引用,只有在必须引用时才使用指针
请参阅以下常见问题解答: http://www.parashift.com/c++-faq-lite/references.html#faq-8.6 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |