这是我的第一篇文章,希望这不是转发。 我在mac上使用g ++编写了以下c ++程序。
#include <iostream>
int main ()
{
double b = 1;
printf("%x\n", b);
printf("%x\n", b);
printf("%x\n", b);
printf("%x\n", b);
return 0;
}
为什么程序给出了相同代码的不同结果?这是输出。
5ca5ebf8
100
200
300
但在Windows上的VS中不会显示此行为。 感谢。
答案 0 :(得分:0)
这是任何体面的编译器应该得到的警告:warning: format specifies type 'unsigned int' but the argument has type 'double'
所以你得到了未定义的行为,任何事情都可能发生:)