这个的结果很诡异?

来源:百度知道 编辑:UC知道 时间:2024/09/19 16:15:29
在vc6.0中的,p==&a但*p!=a?,理由?

#include <iostream>
using namespace std;
int main()
{
const int a=10,*pa=&a;
float *p=((float*)&p+2);*p=10;
printf("a=%d\n&a=%x\na=%d\n&a=%x\n",a,&a,*pa,pa);
}

建议不要在一些无聊的题目上花精力.
平时是不会用这种写法的.

总之,输出结果不同展示的是c++中const变量的宏性质和变量性质
第二行的*p=10,相当于是在原来int型变量的位置按float格式放置了个浮点数,最后输出const的变量值时是用int格式输出的,所以结果特别