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. VLC播放器 for Mac OS X

    ​ VLC 是一款自由.开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD.音频 CD.VCD 及各类流媒体协议. https://www.videolan.org/vlc/down ...

  2. 解决linux conda 命令行环境提示消失的方法

    之前不知道这么搞的,一不小心改了conda的默认设置,后面再登录的时候发现环境名字看不见了,用着很难受,为了解决这个问题,后面发现,应该是我改了changeps1这个设置,他默认是开着的,可以用下面的 ...

  3. gcc_to_use

    gcc 目录 gcc 概要 基本指令及功能(以gcc为例) gcc -gdb gcc -cmake 概要 GCC:GNU Compiler Collection(GUN 编译器集合),是GNU项目中符 ...

  4. 微积分 II 笔记

    5.1 定积分的概念 定义 定积分是积分的一种,是函数 \(f(x)\) 在区间 \([a,b]\) 上积分和的极限 若 \(f(x)\) 在 \([a, b]\) 有界,在 \([a, b]\) 上 ...

  5. 实验:两片ESP8266,分别做客户端和服务器,实现双向收发数据

    手机做热点: 每片都做STATION

  6. Exp6 MSF应用基础

    目录 一.实践内容 1 一个主动攻击实践 漏洞介绍 1 攻击前的准备 2 执行攻击 2 一个针对浏览器的攻击 3 一个针对客户端的攻击,以office为例 4 辅助模块的使用 二.问题回答 1 用自己 ...

  7. 003 jmeter连接数据库及jmeter关联提取器

    1.jmeter连接数据库 测试计划-->线程组-->在线程组上右键-添加-配置元件-JDBC Connection Configuration-->在线程组上右键-添加-取样器-J ...

  8. [已解决]Android studio连接远程MySQL问题解决

    我电脑安装的是8.0的MySQL,导入使用的jar包是mysql-connector-java-5.0.7 1.首先先按照大佬的链接配置好一些东西,注意!已经安装8.0版本MySQL的保持原样就行,不 ...

  9. 记录一次在deepin安装node版本管理工具nvm的过程

    安装nvm sudo apt-get install git -y # 安装git cd /home # 随便找个目录放代码 git clone https://github.com/nvm-sh/n ...

  10. how to make the windows console works with utf-8 encoded project

    the console of the windows os is not working in the utf-8 encoding, by default. When you force your ...