在 C++ 编程中,指针和引用是两个既相似又截然不同的概念,也是面试中高频出现的考点。本文将从汇编语言层面剖析指针与引用的本质差异,结合历年面试真题,建立从理论到实践的完整认知。
一、指针与引用的基础认知
1.1 概念定义与表面区别
指针是一个存储内存地址的变量,通过*
运算符可以访问该地址存储的值。例如:
int num = 10;
int* ptr = # // 指针ptr存储num的地址
*ptr = 20; // 通过指针修改num的值
引用则是一个变量的别名,本质上是目标变量的 "代名词"。例如:
int num = 10;
int& ref = num; // 引用ref是num的别名
ref = 20; // 通过引用修改num的值
从表面上看,它们的主要区别包括:
- 指针可以为空(NULL),引用必须初始化且不能指向其他变量
- 指针需要使用
*
和&
运算符,引用直接使用变量名<