从零单排c++ primer(2)

(1)const对象一旦创建后其值就不能在改变,所以const对象必须初始化,初始化的值可以是表达式。
(2)在默认状态下,const对象仅在文件内有效,当多个文件中出现同名的const变量时,其实等同于在不同的文件中分别定义了独立的变量。
(3)在一个文件中定义const,在多文件中声明并使用它的解决办法是:对于const变量不管是声明还是定义都添加extern关键字,这样只需要定义一次就可以了。
                     //file_1.cc
                      extern const int bufsize = fcn();
                     //file_1.h
                      extern const int bufsize;
(4)可以把引用绑定到const对象上,就像绑定到其他对象上一样,我们称之为对常量的引用。
(5)有的是后常量引用可以绑定一些非常量的对象、字面值,甚至是表达式。
                      int i = 42;
                      const int &r1 = i;
                      const int &r2 = 42;
                      const int &r3 = r1 * 2;、
(6) 对const的引用可能引用一个并非const的对象
                      int i = 42;
                      int &r1 = i;
                      const int &r2 = i;
                      r1 = 0;
                      r2 = 0;    //错误,很多游戏中的输出限定,是不是就是用的这种方法?嘿嘿。
(7) 指向常量的指针不能用于改变其所指向的对象的值,想要存放常量对象的地址,只能使用指向常量的指针。
(8)所谓指向常量的指针或引用,不过是指针或引用“自以为是”罢了,它们自己觉得自己指向了常量,所以自觉地不去改变所指向的对象的值,但可以通过其他途径去修改。 
(9)指向常量的指针和常量指针是不同的
                      const double *cptr = π   //指向常量的指针
                      double *const cptr = π   //常量指针
(10) 指针本身是不是常量以及指针所指的是不是一个常量是两个独立的问题,用名词顶层const表示指针本身是一个常量,而用底层const表示指针所指的是一个常量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值