你好,我在学习VC从入门到精通中的第24页内容,这里讲到const的“欺骗性”,其中*(int*)&MAX_VALUE=5;这句代码为什么就从底层改变了常量的值了呢?能帮我讲一下这个语句的底层操作过程吗?另外int var=*(int*)&MAX_VALUE=5;为什么这句代码可以得到常量改变的值呢?我想真正理解这些底层的操作过程,需要学习哪些课程呢?编译原理?是吗?敬请大师指点!!!
8031
学分:0 LV1
const只是个语法的约束,告知编译器这个地方应该检查。书中已经讲述的很清楚了,只要你调用MAX_VALUE的值,肯定就是10。因为有const关键字约束。但是要间接的获取MAX_VALUE的值,使用var,则可以获得改变后的MAX_VALUE的值。你可以好好看看书中所写的内容。