【发布时间】:2017-05-18 07:21:53
【问题描述】:
class Distance
{
public:
int a;
};
int main()
{
Distance d1; //declaring object
char *p=(char *)&d1;
*p=1;
printf("\n %d ",d1.a);
return 0;
}
这是我的代码。
当我将 'a' 的值传递为 256,512 时,我分别得到 257,513 但对于像 这样的值>1000 我得到 769,对于像 16,128,100 这样的值,我得到 1。
首先,我认为这可能与 2 的幂因二进制表示的变化而增加 1 有关。但是将 1 添加到 1000 的二进制表示不会给我 769。
请帮助我理解这段代码。
【问题讨论】: