pointer vs reference

  1. pointer can be re-assigned.
  2. pointer variable has its own identity: a distinct, visible memory address that can be taken with the unary & operator and a certain amount of space that can be measured with the sizeof operator.
  3. it is possible to create a pointer to a pointer, but not a pointer to a reference or reference to reference(will collapse).
  4. it is possible to create an array of pointers, but not an array of references.
  5. pointer can be assigned nullptr, whereas a reference must be bound to an existing object.
  6. pointer needs to be dereferenced with * to access the object it points to, whereas a reference can be used directly. A pointer to a class/struct uses -> to access its members whereas a reference uses a ..
  7. const reference and rvalue reference can be bound to temporaries. pointers cannot.
const int &x = int(12); // legal C++
int *y = &int(12); // illegal to take the address of a temporary.
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容