在 C 中,通过引用或指针向函数传递参数是修改函数作用域之外的实际值的常见做法。然而,理解何时使用哪个可能会令人困惑。
按引用传递
按引用传递允许直接访问和修改原始变量。它用于:
路过指针
通过指针传递可以通过指针间接访问变量。在以下情况下是必要的:
良好实践
作为一般准则,建议在以下情况下使用参考:
在以下情况下使用指针:
示例
以下代码片段演示了使用引用传递大对象的常见场景:
void foo(std::string& s) { s += "suffix"; }
如果函数需要创建新字符串,则在这种情况下通过指针传递将是合适的object:
void foo(std::string* s) { *s = "new string"; // Deallocates the old string }
在极少数情况下,按值传递也可能是合适的,例如复制小型不可变对象(例如,原始类型)不是问题时。
以上是在 C 中什么时候应该使用引用而不是指针?的详细内容。更多信息请关注PHP中文网其他相关文章!