插卡+int,什么卡能造成最大攻击printf输出int

7.5从float类型转换为double类型7.5在内存中的存放方式是0x40f00000,转换成double类型在内存中的数据就是这个0x401e这个内存数据可以很明显看出低32位全是0,而%d则只能截取到低32位所以这个以%dprintf输出int7.5的数徝当然是 0了。如大家不相信可以用%lld 的类型数据不会再转成double类型了所以printf输出int正常,这个只是针对浮点型数据只占低32位如果printf输出int64位还得用%lld格式控制printf输出int。
*)&a是对内存中的实际存储数据进行操作,蔽开数据类型这一层面只将这个数据0x40f00000直接转成int类型printf输出int。而(int)a要先看a的类型,C语言会根据所要数据类型对内存存储的数据进行改变,以便可以用int类型正确解析内存数据

}

我要回帖

更多关于 long long int输出 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信