const限定符

Posted suomeimei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const限定符相关的知识,希望对你有一定的参考价值。

希望定义一个变量,它的值不能被改变,用关键词const对变量的类型加以限定:

const int bufSize = 512;//输入缓存区大小

bufSize定义成一个常量,任何试图为bufSize赋值的行为都将引发错误:

bufSize = 512;            //错误:试图向const写值

因为const对象一旦创建后其值就不能改变,所以const对象必须初始化

const int i = get_size();//正确:运行时初始化
const int j = 42;//正确:编译时初始化
const int k;//错误:k是一个未经初始化的常量

初始化和const

在不改变const对象的操作中还有一种初始化,如果利用一个对象去初始化另外一个对象,则它们是不是const都无关紧要

int i = 42;
const int ci = i;//正确,i的值拷贝给了ci
int j = ci;//正确:ci的值拷贝给了j

当以编译时初始化的方式定义一个const对象时,就如对bufSize的定义一样:

const int bufSize = 512;//输入缓存区大小

编译器将在编译过程中把用该变量的地方都替换成对应的值,编译器会找到代码中所有用到bufSize的地方,然后用512替换。

·

以上是关于const限定符的主要内容,如果未能解决你的问题,请参考以下文章

2.4 const限定符

C++杂谈const限定符与const指针

Const限定符和前向引用

const限定符

const 不兼容的类型限定符问题

const限定符用法汇总