全面整理的C++面试题(II)

本文详细解释了C++中指针与引用的主要区别,包括:指针可以被重新赋值而引用不能;指针可以指向NULL而引用不可以;不能取引用的地址等特性。此外还澄清了一个常见的误解,即虽然标准没有规定引用的具体实现方式,但所有C++编译器实际上都是通过指针来实现引用的。

1. 指针和引用有什么区别?

  • A pointer can be re-assigned any number of times while a reference can not be reassigned after initialization.
  • A pointer can point to NULL while reference can never point to NULL
  • You can't take the address of a reference like you can with pointers
  • There's no "reference arithmetics" (but you can take the address of an object pointed by a reference and do pointer arithmetics on it as in &obj + 5).

To clarify a misconception:
The C++ standard is very careful to avoid dictating how a compiler must implement references, but every C++ compiler implements references as pointers. That is, a declaration such as:
int &ri = i;
allocates the same amount of storage as a pointer, and places the address of i into that storage.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值