指针与引用当赋予一个函数原始变量来处理时,什么是更好的实践:unsigned long x = 4;void func1(unsigned long& val) {
val = 5; }func1(x);或:void func2(unsigned long* val) {
*val = 5;}func2(&x);IOW:有什么理由选一个而不是另一个呢?
3 回答
largeQ
TA贡献2039条经验 获得超7个赞
就像在所有其他地方一样,永远是 const
-正确。 注意:这意味着,除其他外,只有out值(见项目3)和通过值传递的值(见项目4)才可能缺少 const
说明符。 只有当值0/NULL是当前上下文中的有效输入时,才按指针传递值。 理由1:AS 打电话的人,你看,不管你经过什么 一定是处于可用状态。 理由2:AS 叫,你知道,不管是什么 是处于可用状态。因此,不需要对该值执行空检查或错误处理。 理由3:理据1和2将是 编译器强制..如果可以,请始终在编译时捕获错误。 如果函数参数是一个输出值,则通过引用传递它. 理由:我们不想破坏第二项. 只有在值为POD( 普通旧数据结构 )或足够小(内存方面)或在其他方面足够便宜(时间上)来复制。 理由:避免不必要的拷贝。 注: 足够小
和 够便宜的
不是绝对可以测量的。
- 3 回答
- 0 关注
- 356 浏览
添加回答
举报
0/150
提交
取消