Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions docs/notes/03-hunting_job/02-interview/01-01-01-basic.md
Original file line number Diff line number Diff line change
Expand Up @@ -266,11 +266,15 @@ void main()

## 4、在传递函数参数时,什么时候该使用指针,什么时候该使用引用呢?

* 需要返回函数内局部变量的内存的时候用指针。使用指针传参需要开辟内存,用完要记得释放指针,不然会内存泄漏。而返回局部变量的引用是没有意义的
* 需要利用参数获取函数内部动态分配的内存时用指针。同时无论是指针还是引用,都不应该返回函数内局部变量的地址,因为局部变量在函数结束时会被销毁,返回后访问会导致未定义行为

* 当需要表示"可选"或"可能为空"的语义时,使用指针

* 对栈空间大小比较敏感(比如递归)的时候使用引用。使用引用传递不需要创建临时变量,开销要更小

* 类对象作为参数传递的时候使用引用,这是C++类对象传递的标准方式
* 类对象作为参数传递的时候使用引用,这样可以避免大对象的拷贝开销,同时要注意此时参数不能为空;如果对象不需要修改,则再加上const修饰

* 实现多态时的动态分配对象使用指针



Expand Down