C++中,引用和指针的区别

1.引用不能为空,当引用被创建的时候,它必须被初始化。而指针可以为空值,可以在任何时候被初始化。

2.一旦一个引用被初始化为指向一个对象,它就不能被改变为对另一个对象的引用。指针则可以在任何时候指向另一个对象。

3.不可能有NULL引用。必须确保引用是和一块合法的存储单元关连。

4.“sizeof(引用)”得到的是所指向的变量(对象)的大小,而“sizeof(指针)”得到的是指针本身的大小。

5.给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另一个对象关联。

6.引用使用时不需要解引用,而指针需要解引用,引用和指针的自增(++)操作运算意义不一样。

7.如果返回动态分配的对象或内存,必须使用指针,引用可能引起内存泄露。

8.当使用&运算符取一个引用的地址时,其值为所引用变量的地址;而对指针使用&运算,取的是指针变量的地址。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其...
    IvanRunning阅读 381评论 0 1
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,539评论 1 51
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,370评论 0 6
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,474评论 3 44
  • 硬汉只用 手动剃须刀 总也刮不尽胡茬 吃烤肉时得喝 烈酒 同情弱者却也 杀人不眨眼 绝不让偶尔的孤独和脆弱 从眼睛...
    老晁阅读 255评论 0 3