1、可以为const引用初始化一个非const的对象、字面值,甚至是一般表达式。

2、对引用初始化时必须严格进行类型匹配,但是const引用初始化时不需要类型匹配,只要可以转换为const所定义的类型即可,此时,const引用变量指向了一个用于类型转换的临时量,若引用为非const的,且没有进行类型匹配,则此非const引用也指向临时量,此时如果改变引用变量的值,则只能改变临时量的值,而不能改变初始化时所用变量的值,没有达到通过引用改变所绑定量的值的目的,因此非const引用必须做到严格的类型匹配。

3、要想存放常量对象的地址,只能使用指向常量的指针。

4、声明语句中const int *p为指向常量的指针,int *const p为常量指针,即指针本身是常量,区别方法:从右往左读。

5、指向常量的指针为底层const,常量指针为顶层const,引用类型都是底层const。

6、在初始化语句中顶层const可以忽略,底层const必须一致。const可以初始化为非const变量,但非const变量不能初始化为const。

const引用和指针的更多相关文章

  1. 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, const 对象的引用

    [源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象,  const 指针和指向 const 对象的指针, con ...

  2. 【c++基础】const、const指针、const引用

    一.const常量 声明时必须同时初始化(和“引用”一样) 二.const指针 三.const引用 引用本身和引用的对象都是const对象,可以用字面值来赋给const引用(普通引用则不行) ; co ...

  3. C++引用和const引用、常量指针、指针常量

    1.引用.常量引用 引用主要被用做函数的形式参数--通常将类对象传递给一个函数. 引用在内部存放的是一个对象的地址,它是该对象的别名.引用不占用内存,因为取地址引用的值和被引用变量的地址相同.但是ob ...

  4. c++引用和const 用法 数组 指针

    非const引用,只能用object为其赋值: <c++primer>P52 而const引用则可以用临时变量为其赋值: 如: const int &r = 32://可以 int ...

  5. C++ const 引用 指针

    先简单回忆一下常量的性质: int main() { const int buffSize = 512; buffsize = 512; //× buffSize是常量 } 初始化时: const i ...

  6. C++ 中的 const、引用和指针的深入分析

    1,关于 const 的疑问: 1,const 什么时候为只读变量,什么时候是常量: 1,const 从 C 到 C++ 进化的过程中得到了升级,const 在 C++ 中不仅仅像在 C 中声明一个只 ...

  7. const、引用与指针

    前提 我们忽略掉了相同类型是否可以赋值的情况(我到现在的学习里都还可以相互赋值),以及类型兼容的情况.只考虑const.&.*等修饰符带来的影响 类型兼容: 强制类型转换 基类与子类间的兼容 ...

  8. 函数返回值为 const 指针、const 引用

    函数返回值为 const 指针,可以使得外部在得到这个指针后,不能修改其指向的内容.返回值为 const 引用同理. class CString { private: char* str; publi ...

  9. c++中的引用与指针的区别

    http://blog.csdn.net/lyd_253261362/article/details/4323691 c++中的引用与指针的区别 ★ 相同点: 1. 都是地址的概念: 指针指向一块内存 ...

  10. C++中引用与指针的区别(详细介绍)

    C++中引用与指针的区别(详细介绍) C++中的引用与指针的区别   指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一 ...

随机推荐

  1. element-ui组件Table排序(sort-by),某些数据无需排序

    在列中设置 sortable 属性即可实现以该列为基准的排序, 接受一个 Boolean,默认为 false. 可以通过 Table 的 default-sort 属性设置默认的排序列和排序顺序. 可 ...

  2. appium:报错Message: Message: Parameters were incorrect. We wanted {"required":["value"]}

    python版本3.7.4,selenium版本4.0.0,Appium-Python-Client版本2.0.0,报错见标题 别人给出的建议:https://blog.csdn.net/liangs ...

  3. scp 和 rsync

    scp 和 rsync指令的区别 相同点两者都可以被用来进行数据同步 不同点 : 对于scp来讲 是全量复制 以当前主机为准 将相同的文件拷贝到另一台机器上 rsync 可以识别增量的内容,可以仅仅对 ...

  4. 宝塔404 Not Found的解决方法-重启大法也适合服务器

    本来以为服务器不是随时重启的,浪费了好几的时间配置ssl一直无法成功,后来处理404问题重启后,发现ssl也好使了. 以下引自连接 https://www.chichisvip.com/post/37 ...

  5. 一条命令删除所有静态路由华为eNSP

    在系统视图下执行undo ip route-static all,可以一次删除所有静态路由,包括缺省路由. 默认状态: 执行 undo ip route-static all

  6. Linux 配置共享目录方法

    配置共享目录有三种方法: 第一种:使用Vmware自带的文件共享的功能,进入Vmware,点击虚拟机选项,然后点击"设置",再点击标签"选项"这一项,找到&qu ...

  7. BundleFusion_Ubuntu_Pangolin 安装的一些error

    /usr/bin/ld: 找不到 -lEigen3::Eigen 解决方法:find_package(Eigen3 REQUIRED)为list(APPEND CMAKE_INCLUDE_PATH & ...

  8. Linux编译安装中的--prefix

    本文主要说明--prefix参数的作用,其主要用在编译安装源代码应用中的./configure环节. 1.源码安装一般包括几个步骤:配置(configure),编译(make),安装(make ins ...

  9. DevExpress.XtraEditors.ComboBoxEdit 只能选择不能在里面 输入数据

    DevExpress.XtraEditors.ComboBoxEdit 只能选择不能在里面 输入数据 combboxEdit.propoties.textEditStyle=DisableTextEd ...

  10. Java基础__01.环境安装

    该篇文章,主要讲述了Java的一些基础知识及准备工作. Java的特性 简单性 面向对象 可移植性,即跨平台性(Write Once, Run Anywhere) 高性能 分布式 动态性 多线程 安全 ...