const 限定符
1.定义const对象
const限定符把一个对象转换成一个常量
const int Bufsize = 512;
定义Bufsize 为常量并初始化为512。变量Bufsize仍然是一个左值,但是不可修改。
Bufsize = 0; // error
2.const对象默认为文件的局部变量
在全局作用域中定义非const变量时,在整个程序中都能访问
// file1.c
int counter;
// file2.c
exter int counter;
counter++;
除非特别说明,在全局作用域声明的const变量是该对象的文件的局部变量,此变量只存在于这个文件中,不能被其他文件访问。
通过指定const变量为extern,就可以在整个程序中访问const变量。
// file1.c
extern const int Bufsize = fcn();
//file2.c
extern const int Bufsize;
for( int i = 0; i < Bufsize; ++i )
注意:非const变量默认为extern。要使const变量能够在其他的文件中访问,必须显示的指定它为extern。
3. const引用
const引用是指向const对象的引用
const int ival = 512;
const int &refval = ival; // ok: 对象和引用都是const型
int &refval = ival; // error: 对象是const型,引用不是const型
4.指向const对象的指针
指针指向const对象,不允许通过指针改变其所指的const值。
const double pi = 3;
const double *cptr = *pi;
*cptr = 4; // error
把一个const对象的地址付给一个非const对象的指针,编译时是错误的。
const double pi = 3;
double *cptr = π // error
5. const 指针
const指针——指针本身不能被修改
int errNumb_1 = 0;
int errNumb_2 = 0;
int *const curErr = &errNumb;
curErr = &errNumb_2; // error, curErr 已经被赋值了
const 限定符的更多相关文章
- C++const限定符
在C语言中我们使用#define宏定义的方式来处理符号常量.而在C++中有一种更好的处理符号常量的方法,那就是使用const关键字来修改变量声明和初始化.这种处理常量方式的好处不言而喻:如果程序在多处 ...
- C++杂谈(一)const限定符与const指针
const限定符 c++有了新的const关键字,用来定义常变量,可以替C语言中的#define.关于const限定符,有以下需要注意: 1.创建后值不再改变 2.作用范围在文件内有效 3.添加ext ...
- C++ Primer 第二章 引用 指针 const限定符
1.引用: 为对象起了另外一个名字,引用类型引用另外一种类型,通过将声明符写成&d的形式来定义引用类型,其中d也就是声明的变量名(声明符就是变量名). PS:1.通过图片中编译所提示的报错信息 ...
- 指针和Const限定符
指针和Const限定符 1.指向const对象的指针 如果指针指向的是const对象,则不允许使用指针来改变其所指的const值.C++要求指向const对象的指针具有const特性. const d ...
- C++ const 限定符
C++ const 限定符 作用:把一个对象转换成一个常量 用法:const type name = value; 性质:1. 定义时必须初始化,定义后不能被修改.2. 类中的const成员变量必须通 ...
- const限定符的作用
const限定符的作用: 1.定义const常量:const可以将一个对象变成一个常量,不可被修改,所以定义的 时候必须进行初始 ...
- C++之const限定符
作者:tongqingliu 转载请注明出处: C++之const限定符 const初始化 const的特点: 用const加以限定的变量,无法改变. 由于const对象定义之后就无法改变,所以必须对 ...
- 变量和基本类型——复合类型,const限定符,处理类型
一.复合类型 复合类型是指基于其他类型定义的类型.C++语言有几种复合类型,包括引用和指针. 1.引用 引用并非对象,它只是为一个已存在的对象所起的另外一个名字. 除了以下2种情况,其他所有引用的类型 ...
- C++之const限定符(顶层const,底层const)
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7050815.html C++之const限定符(顶层const,底层cons ...
随机推荐
- sql server 替换特殊符号
--create-- 去掉特殊符号alter function RepSymbol(@str nvarchar(max))returns nvarchar(max)as begin set @str= ...
- Spark 1.6以后的内存管理机制
Spark 内部管理机制 Spark的内存管理自从1.6开始改变.老的内存管理实现自自staticMemoryManager类,然而现在它被称之为"legacy". " ...
- OAF_开发系列11_实现OAF通过DataBoundValues动态显示表列的左右对齐
20150712 Created By BaoXinjian
- 关于NGINX的502的装逼打怪之路
写日志之前先copy一段nginx502的原因,从某网看到如下,然而这并不是重点,最重要还是看博主手敲的东西. 一.NGINX 502错误排查 NGINX 502 Bad Gateway错误是Fast ...
- mysql数据备份
转载自:http://blog.chinaunix.net/uid-16480950-id-102800.html http://www.cnblogs.com/xuejie/archive/20 ...
- (Skill)238. Product of Array Except Self
Given an array of n integers where n > 1, nums, return an array output such that output[i] is equ ...
- Python-0 简述
#1 应用广泛: 豆瓣 youtube 云存储相关 #2 初步学习内容:
- MVVM模式下弹出窗体
原地址:http://www.cnblogs.com/yk250/p/5773425.html 在mvvm模式下弹出窗体,有使用接口模式传入参数new一个对象的,还有的是继承于一个window,然后在 ...
- 单例设计模式全局缓存accessToken
使用微信JS-SDK开发的小伙伴们,看文档经常会看到这样一句话:(下面是微信开发文档的一部分原话截图) 这句话就是:开发者必须在自己的服务全局缓存access_token,jsapi_ticket 下 ...
- angularJS全选功能实现
最近在做的一个项目要增加全选和反选功能,之前只做过JQ版的全选和反选. 实现效果: 1.点击全选checkbox可以切换全选和全部清空 2.点击列表中的checkbox,当全部选中时全选选中 3.在全 ...