最近学了一点点汇编,突然想到能不能通过内嵌汇编修改C++中const常量的值。
可以看到定义const常量也是在堆栈中开辟空间
也可以改变所在地址的值
然而当我们输出i时,直接把1入栈,相当于在以后编译器把i当作1处理了
结尾写到:
1.对const常量取地址时,编译器会进行内存分配,并将常量转换为立即数存入内存,而不是存入记录在常量表中的地址
2.在使用常量时,编译器回到常量表中查询对应的常量,并将其替换,这部分没有涉及内存分配,也跟曾经创建的常量的内存地址无关。
也就是说const常量的值存储在只读区段中,需要使用的时候直接使用,与在堆栈中创建的地址无关