`
jubincn
  • 浏览: 231501 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
文章分类
社区版块
存档分类
最新评论

引用(reference)和const指针的区别

 
阅读更多

两者最大的不同是const指针在内存中有存储空间,有地址,而引用则没有。因此,const指针可以为NULL,而引用不能为NULL。

简而言之,const指针是个指向对象的指针,而引用则是对象自身。


下面内容来自:《高质量C/C++编程指南》

引用的一些规则如下:

(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。
(2)不能有 NULL 引用,引用必须与合法的存储单元关联(指针则可以是 NULL)。

(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。



分享到:
评论

相关推荐

    C++中Reference与指针(Pointer)的使用对比

    了解引用reference与指针pointer到底有什么不同可以帮助你决定什么时候该用reference,什么时候该用pointer。  在C++ 中,reference在很多方面与指针(pointer)具有同样的能力。虽然多数C++程序员对于何时使用...

    Qt源码剖析-智能指针.pdf

    typedef const value_type &const_reference; typedef qptrdiff difference_type; }; QSharedPointer提供了部分公有和私有的对于模板参数T的类型重定义(说明: 这⾥T类型并不是指⼀个特定类型,⽽是⼀个通⽤/万能类 ...

    leetcode合法表达式-CPP_Practice:本仓库是面向C/C++技术方向的基础知识总结,包括语言、程序库、数据结构、算法、系统、网

    const)和自身是常量的指针(常量指针,const pointer); 修饰引用,指向常量的引用(reference to const),用于形参类型,即避免了拷贝,又避免了函数对值的修改; 修饰成员函数,说明该成员函数内不能修改成员...

    《垃圾收集》(Garbage Collection)扫描版[PDF]——part2

    10.6.7 智能指针和引用计数 10.6.8 一个简单的引用计数指针 10.6.9 用于灵活的垃圾收集的智能指针 10.6.10 用于追踪式垃圾收集的智能指针 10.7 为支持垃圾收集而修改C++ 10.8 Ellis和Detlefs的建议 10.9 终结机制 ...

    (Garbage Collection)扫描版——part1

    10.6.7 智能指针和引用计数 10.6.8 一个简单的引用计数指针 10.6.9 用于灵活的垃圾收集的智能指针 10.6.10 用于追踪式垃圾收集的智能指针 10.7 为支持垃圾收集而修改C++ 10.8 Ellis和Detlefs的建议 10.9 终结机制 ...

    leetcode超时用例数-Basic:基本的

    leetcode超时用例数 ...const)和自身是常量的指针(常量指针,const pointer); 修饰引用,指向常量的引用(reference to const),用于形参类型,即避免了拷贝,又避免了函数对值的修改; 修饰成员

    leetcode超时用例数-C-:C-

    leetcode超时用例数 :open_book: Github    ...const)和自身是常量的指针(常量指针,const pointer); 修饰引用,指向常量的引用(reference to const),用于形参类型,即避免了拷贝,又避免了函

    leetcode超时用例数--:——

    leetcode超时用例数 :open_book: Github    ...const)和自身是常量的指针(常量指针,const pointer); 修饰引用,指向常量的引用(reference to const),用于形参类型,即避免了拷贝,又避免了函

    leetcode超时用例数-Summary:概括

    leetcode超时用例数 :open_book: Github    ...const)和自身是常量的指针(常量指针,const pointer); 修饰引用,指向常量的引用(reference to const),用于形参类型,即避免了拷贝,又避免了函

    leetcode超时用例数-C-_Interview:C-_面试

    leetcode超时用例数 :open_book: Github    ...const)和自身是常量的指针(常量指针,const pointer); 修饰引用,指向常量的引用(reference to const),用于形参类型,即避免了拷贝,又避免了函

    leetcode超时用例数-interview:面试

    leetcode超时用例数 :open_book: Github    |    :light_bulb: 关于 :books: 本仓库是面向 ...const)和自身是常量的指针(常量指针,const pointer); 修饰引用,指向常量的引用(reference to

    leetcode超时用例数--:C-C++

    leetcode超时用例数 :open_book: Github    |    :light_bulb: 关于 :books: 本仓库是面向 ...const)和自身是常量的指针(常量指针,const pointer); 修饰引用,指向常量的引用(reference to

    Effective C++(第三版)

    条款20:宁以pass-by-reference-to-const替换pass-by-value prefer pass-by-reference-to-const to pass-by-value. 条款21:必须返回对象时,别妄想返回其reference don't try to return a reference when you must ...

    Effective C++ 中文版

    条款16:成对使用new和delete对象置入智能指针 条款17:以独立语句将newed对象置入智能指针 4.设计与声明 条款18:让接口容易被正确使用,不易被误用 条款19:设计class犹如设计type 条款20:宁以pass-by-...

    c#学习笔记.txt

    在 C 或 C 中与委托最接近的是函数指针,但函数指针只能引用静态函数,而委托可以同时引用静态方法和实例方法。在后一种情况中,委托不仅存储对方法入口点的引用,还存储对调用其方法的对象的引用。与 C 函数指针...

    OOP_注意

    复杂的小结(具体代码见complex.h)防卫式声明类名数据放在private中函数放在public中构造函数(默认值,初值列)成员函数参数值尝试以reference来传,要不要加const,看情况返回值也尝试以reference来传友元相同类...

    C#微软培训资料

    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    然 new 运算符返回对一个对象的引用,但与 C、C++中的指针不同,对象的引用是指 向一个中间的数据结构,它存储有关数据类型的信息以及当前对象所在的堆的地址, 而对于对象所在的实际的内存地址是不可操作的,这就保证...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    一、Qt Creator 的安装和hello world 程序的编写(原创) 1.首先到Qt 的官方网站上下载Qt Creator,这里我们下载windows 版的。 下载地址:http://qt.nokia.com/downloads 如下图我们下载:Download Qt SDK for ...

    STL 源码剖析(侯捷先生译著)

    in-class static const integral data member initialization 1.9.4 increment/decrement/dereference 运算子 037 1.9.5 "前闭后开"区间表示法 [ ) 039 1.9.6 function call运算子(operator()) 040 第2章 空间...

Global site tag (gtag.js) - Google Analytics