diff --git a/docs/notes/03-hunting_job/02-interview/01-01-01-basic.md b/docs/notes/03-hunting_job/02-interview/01-01-01-basic.md index b7f01bd58..7dd1c43d3 100644 --- a/docs/notes/03-hunting_job/02-interview/01-01-01-basic.md +++ b/docs/notes/03-hunting_job/02-interview/01-01-01-basic.md @@ -266,11 +266,15 @@ void main() ## 4、在传递函数参数时,什么时候该使用指针,什么时候该使用引用呢? -* 需要返回函数内局部变量的内存的时候用指针。使用指针传参需要开辟内存,用完要记得释放指针,不然会内存泄漏。而返回局部变量的引用是没有意义的 +* 需要利用参数获取函数内部动态分配的内存时用指针。同时无论是指针还是引用,都不应该返回函数内局部变量的地址,因为局部变量在函数结束时会被销毁,返回后访问会导致未定义行为 + +* 当需要表示"可选"或"可能为空"的语义时,使用指针 * 对栈空间大小比较敏感(比如递归)的时候使用引用。使用引用传递不需要创建临时变量,开销要更小 -* 类对象作为参数传递的时候使用引用,这是C++类对象传递的标准方式 +* 类对象作为参数传递的时候使用引用,这样可以避免大对象的拷贝开销,同时要注意此时参数不能为空;如果对象不需要修改,则再加上const修饰 + +* 实现多态时的动态分配对象使用指针