const 说明

 1 /* const 说明 */
 2 
 3 void main()
 4 {
 5     int data = 100;
 6     const int num = 100;//c++保证常量绝对不被修改
 7     std::cout << &num << std::endl;// 直接引用常量100
 8     int *p = const_cast<int *>(&num);// 强制去掉const属性
 9     *p = 4;  // 可以编译通过  但是禁止执行
10     std::cout << num << std::endl;// 直接引用常量100,真实的内存已经被修改
11     // 引用这个变量,是直接常量表读取,没有直接从内存读取
12 
13     std::cout << *p << std::endl;// 直接引用常量100
14 }
15 // const 动态监测类型实现赋值 
16 // 赋值会自动实现数据类型转换避免类型不一致出错
17 
18 /* 
19     const常量:
20         const VC最新版本 GCC最新版本 都是从代码区存储常量常量
21         在寄存器里产生,不会从内存读取,编译器的优化
22 
23         老版本C++编译器没有取地址符或者全局变量说明符直
24         接从寄存器产生,为了兼容C,出现取地址或者全局变量说明符
25         内存会分配常量的地址。取变量名不会读内存,常量会在寄存器中产生
26         取地址就可以直接修改
27         
28 
29         真实的内存我们实际已经修改成功了,编译器会优化,不会
30         从内存读取
31 
32     变量:
33         传递给指向常量的指针,传递给常量引用,都可以去掉属性,
34         变量会从内存读取
35 */

 

posted on 2015-05-27 14:21  Dragon-wuxl  阅读(85)  评论(0)    收藏  举报

导航