满意答案
OooO羊OooO
2018.10.26
采纳率:44% 等级:12
已帮助:20767人
//这句是数值赋值。使用了类型转换,double类型转int类型时,只取double的整数部分。,所以x=100
int x = d;
//这句是指针赋值。double类型的指针,强转为int类型的指针时,其实指针的位置没有变化,但是含义变了;
//double指针表示从指针开始的往后8个字节,存的是double格式;int指针表示从指针开始往后的4个字节,存的是int格式
//那么这里从指针开始往后的4个字节,是什么内容呢?
//d=100.25,对应的16进制是:0x4059 1000 0000 0000
//所以从指针开始往后的4个字节,要么是:4059 1000,要么是:0000 0000。
//这和你系统是大端模式(内存低地址放的是权值高的位),还是小端模式有关(内存低地址放的是权值低的位)。
//你的系统是小端模式的,所以从指针开始往后的4个字节是:0000 0000
//你的系统是大端模式的,所以从指针开始往后的4个字节是:4059 1000
//这了控制台输出了0,所以可以断定,你的系统是小端模式,指针开始往后的4个字节是:0000 0000
int *pInt=(int *)&d;
00分享举报