关于常量转型的一个有关问题
关于常量转型的一个问题
要将一个常量赋给一个变量引用,需要一个常量转型.这个时候,如果再以这个引用去修改实体的值,是可以修改的.但是常量的值并没有变.我看了下引用的地址跟常量的地址,都是同一个地址.那为什么显示出来的是两个不同的值呢?而常量修改不了,用引用却可以修改,显示的时候也是显示修改了的值.请解释下.谢谢
------解决方案--------------------
自己google “常量折叠”吧
------解决方案--------------------
cout < < "a,b,&a,&b " < <endl < <a < <endl < <b < <&a < <&b
被编译器优化成了:
cout < < "a,b,&a,&b " < <endl < <5 < <endl < <b < <&a < <&b
要将一个常量赋给一个变量引用,需要一个常量转型.这个时候,如果再以这个引用去修改实体的值,是可以修改的.但是常量的值并没有变.我看了下引用的地址跟常量的地址,都是同一个地址.那为什么显示出来的是两个不同的值呢?而常量修改不了,用引用却可以修改,显示的时候也是显示修改了的值.请解释下.谢谢
------解决方案--------------------
自己google “常量折叠”吧
------解决方案--------------------
cout < < "a,b,&a,&b " < <endl < <a < <endl < <b < <&a < <&b
被编译器优化成了:
cout < < "a,b,&a,&b " < <endl < <5 < <endl < <b < <&a < <&b