C++理论梳理4——函数接口
函数的输入
-
按值传递
将实参复制给形参。被调函数在形参上做处理,而不在实参上做处理。 -
按址传递(引用&)
可理解为变量的别名。传递的是实参地址,因此可在实参上做处理。 -
按址传递(指针*)
传递的是实参地址,因此可在实参上做处理;
注意:要做空指针判断(NULL),保证代码稳健性。 -
总结
降低内存消耗,和被调函数修改主函数时,建议使用按址传递。
函数的返回值
- 按值传递
绝大多数情况下,被调函数使用按值传递。 - 按址传递(static)
如果使用static(局部静态变量),该变量不会在函数结束后释放内存,此时可以按址传递。
总结
涉及作用域和作用时间(本质是内存的管理),参见C++理论梳理5——变量的作用域和作用时间。