const限定符用法汇总
const限定符限定变量的类型是一个常量,对象一旦创建后其值就无法改变,所以const对象必须初始化。
初始化
const int i = get_size(); //运行时初始化
const int j = 42; //编译时初始化int k = 40;
const int ck = k; //k的值 被拷贝给了ck
const对象的作用域
默认情况下,const对象仅在文件内有效.
如果要在多个文件中共享const对象,必须在变量的定义之前添加extern关键字。
//file_1.cc定义并初始化了一个常量,该常量能被其他文件访问
extern const int bufsize = fcn(); //这里必须加上extern,别的文件才可以用//file_1.c 头文件
extern const int bufsize; //与file_1.cc中定义的bufsize是同一个
const的引用
因为引用所代表的就是另外一个对象的,别名而已,所以考虑引用所对应的对象是否被改变即可!!const对象也不是不能改变,下面会有提到!
1 const int ci = 1024; 2 const int &r1 = ci; // 正确:引用及其对应的对象都是常量 3 r1 = 42; // 错误:r1 是对常量的引用 4 int &r2 = ci; // 错误:试图让一个非常量引用指向一个常量对象 5 //试想,c1的值不可改变,但r2的值可改变,那么改变r2就是改变c1,显然不对 6 int i = 125; 7 const int & r3 = i; //允许将const int & 绑定到一个普通的int对象上
View Code
初始化和对const的引用
1 int i = 42; 2 const int &r1 = i; //允许将const int & 绑定到一个普通int对象上 3 const int &r2 = 42; //正确:r1是一个常量引用 4 const int &r3 = r1 * 2; //正确:r3是一个常量引用 5 int &r4 = r1 * 2; //错误:r4是一个普通的非常量引用
View Code
对于两种情况,见下面,编译器会报错!
int i = 42; const int & r1 = i; //正确,但改变i的值,r1也会跟着改变 const int ci = 1024; int &i1 = i;i1 = 54;//正确r1 = 54;//错误int &r2 = ci*2; // 错误 VS 2015中提示:非常量引用的初始值必须为左值int &r3 = r1; //错误 VS2015 提示:"int &" 类型的引用绑定到 "const int" 类型的初始值设定项时,限定符被丢弃
转载于:https://www.cnblogs.com/zhehan54/p/5223790.html
const限定符用法汇总相关推荐
- C++ const限定符和auto类型说明符
const限定符 # 1.限定常量 有时我们希望定义这样的变量:它的值不能被改变.为了满足这一要求,我们使用const对变量的类型加以限定: const int bufSize = 512; 这样就把 ...
- 指针和Const限定符
指针和Const限定符 1.指向const对象的指针 如果指针指向的是const对象,则不允许使用指针来改变其所指的const值.C++要求指向const对象的指针具有const特性. const d ...
- C++primer :const限定符
1.问题引入 <span style="font-size:18px;"><span style="font-size:18px;">f ...
- php+条件限定符,const 限定符
const 限定符 const 对象一旦创建后不可改变,所以const必须初始化. const int i=get_size(); //运行时初始化 const int j=43; const int ...
- C++的const限定符
const限定符总是让人很头疼,下面讲解一下几个比较容易混淆的概念: 对常量的引用(常量引用): 一般情况下,引用的类型要与其所引用的对象的类型一致,其中的例外情况就是,当初始化常量引用时,允许用任意 ...
- 指针、引用以及const限定符、constexpr限定符
文章目录 复合类型 引用 概念与使用 引用的定义 注意 指针 概念 声明方式 取地址符 指针值 空指针 利用指针访问对象 赋值和指针 void* 指针 指向指针的指针 指向指针的引用 初始化所有指针 ...
- C++primer第二章2.4节对于const限定符相关内容进行详解
const限定符 const对象一旦创建后其数值就不会被再次改变,因此const对象必须初始化. const对象只在文件中有效 在不同的文件中使用不同的const来定义不同的常量,那么每个文件定义的变 ...
- c++ const限定符
const限定符 const对像一旦创建,其值就不能发生改变.const对象必须初始化 const int i = get_size();//正确,运行时初始化. const int j = 1;// ...
- Const限定符与C++11Constexpr的区别
Const限定符: 属于标准C里的限定符,负责将变量.对象转换成一个字面值常量,值得注意的是,Const限定符只能在编译期间被确定为字面值常量,但是在运行阶段还是会为其分配内存而不是存在于代码段中,也 ...
最新文章
- 成功解决TypeError: take() got an unexpected keyword argument ‘fill_value‘
- [trouble shoot]atol和atoll
- python搜索文件内容_python实现搜索文本文件内容
- 这9个人气超高的公众号,你还没关注吗?
- 子网规划与组网实验_交换机四种组网方式,你都清楚吗
- c# ComboBox禁用鼠标滚轮
- Linux查ip出来的pp0,linux下使用shell查看apache IP访问量
- 人工神经网络理论及应用第三章课后题答案
- 串口程序设计——struct termios结构体
- 平安科技java机试题_2017年华为优招机试题_平安果_编程题
- 司空见惯 - 洪荒之力
- Windows Defender无法关闭的红叉
- 新浪微博回调地址redirect_url(授权回调页)的设置格式
- 解决MAC系统升级后虚拟机黑屏问题
- 小鱼儿的菜鸟笔记三 原来Excel图表可以这么做——花样制作Excel条形图/柱状图/环形图/折线图
- 使用CSS3设置条纹背景
- MySQL Key的含义
- jasperprint 设置横向打印
- 贵州将大力推进城市更新“四改”工作
- python(C)作业6 P110 2,4,12