const_cast转换咨询
来源:9-8 const_cast的使用
慕粉4252638
2023-02-24
按照汇编质量,这里的int* p = const_cast<int*>(&a);转换,是不是就是新开辟了一个int*指针,将a的值赋值给了P指针指向的地址,但是看调试,p所指向的内存的地址就是a的内存地址,然后改变p的值可以改变,但是a的值不能改变,这里有点理解不了
写回答
1回答
-
quickzhao
2023-02-24
是的,p确实改变了变量a的地址所存的信息。但是编译器是通过缓存的方式让你看起来a的值没改变,所以这里cout或者其他地方用的a的值是从其他地方的缓存处直接取出来的。比如这里cout就是直接使用了push 0Ah的进行赋值,你看看下面的汇编代码。
00
相似问题