您的位置:首页 > 编程语言 > C语言/C++

《C++primer》笔记 第二章2.4const

2017-02-23 21:12 197 查看
1.constant常量声明的时候必须要初始化

例如:

const int buf=1024;
//此时buf不再是变量而是一个常量,符合常量的原则


2.对const常量的引用(reference to const)

引用常量本质上是绑定了一个常数。

常量的引用也必须是常量 因此具有该格式:

const int buf=1024;
const int &r=buf;//引用也必须为常量,格式与引用对象相同
//引用r,因此不能对r进行赋值的更改(因为是常量),也不能进行对象更改(因为是引用)


本质上常量引用r绑定的是1024,而非buf;

2.1常量引用的初始化

int a=1;
const int &r1=a;//允许,常量引用可以被变量初始化;
const int &r2=12;//允许,常量引用可以被常量初始化;
//需要注意的是一般的引用是不能被常量初始化的;
//而常量引用可以被常量初始化,即将常量引用绑定到了一个常量上(符合逻辑)


2.2指向常量的指针(pointer to const)

int a=1;
int b=1024
const double* ptr=b;//常量的是double,因此内容不能改变即*ptr是个常量不能改变
ptr=&a;//允许,因为指针ptr并不是常量,地址是可以改变的


2.3常量指针(const pointer)

与常量引用类似,顾名思义,指针为常量,因此const的对象为ptr

int a=1;
double* const ptr=&a;//常量的对象是个指针因此ptr永远指向a的地址;
//此时可以修改*ptr的值

const double* const ptr1=a;//指针指向的地址和指针内容都为常量
//因此不发更改指针和内容


3.const 的拷贝

注意拷贝是变量给变量,变量给常量的内容复制

赋值为常数给变量或者常量的内容赋予

规则:

可以将非常量数复制给常量例如
int a=1;const int b=a;


绝对禁止常量赋值给非常量,const类型无法拷贝给非const类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: