三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

指针 引用区别

指针  引用区别

指针 & 引用区别

1. 初始化要求不同

  • 指针:可以不初始化,可以先定义后赋值
  • 引用:必须初始化,定义时就绑定一个变量

2. 是否可以为空

  • 指针:可以为nullptr(空指针)
  • 引用:不能为空,一定指向有效对象

3. 是否可以改变指向

  • 指针:可以改变指向,先后指向不同变量
  • 引用:一旦绑定,终身不变,只能修改绑定变量的值

4. 多级支持

  • 指针:支持多级指针int** p
  • 引用:不支持多级引用

5. 底层本质

  • 引用本质是指针常量,编译器层面实现
  • 指针是独立变量,占用内存(64位8字节)
  • 引用不额外占用内存,和原变量同地址

6. 使用解引用

  • 指针使用要解引用*p
  • 引用直接使用,不用解引用

7. 函数传参区别

  • 指针传参:可传空,可读性稍差
  • 引用传参:一定有效,代码更简洁安全

面试口述

  1. 引用必须初始化,指针可以不初始化;
  2. 引用不能为空,指针可以为空;
  3. 引用不能改变绑定对象,指针可以改变指向;
  4. 引用底层是指针常量,指针是独立变量;
  5. C++ 优先用引用,安全性更高。
← 返回列表