会有什么行为和下面的代码的输出,如果我意外的代码,以便在C/C++,以下代码片段的行为是什么?
float a = 12.5;
printf("%d\n", a);
printf("%d\n", *(int *)&a);
会有什么行为和下面的代码的输出,如果我意外的代码,以便在C/C++,以下代码片段的行为是什么?
float a = 12.5;
printf("%d\n", a);
printf("%d\n", *(int *)&a);
Rubish和更rubish。
你会得到一些有意义的事情,如果你做了,虽然
printf("%d\n", (int)a);
+1无意的幽默。 :-) – 2010-08-04 21:09:15
@Paul R:你怎么知道这是无意的?不是说这不介意你。 – torak 2010-08-04 21:12:16
@torak:如果是故意的,我表示歉意 - 我认为这可能只是一个错字而已,相当有趣而且适中。 :-) – 2010-08-04 21:39:07
其不确定下,因为ANSI定义的sizeof不是(INT)和sizeof(浮动)之间的关系。
两个字:未定义的行为 – 2010-08-04 21:07:48
好奇心是尝试*有意*看看会发生什么:) – 2010-08-04 21:08:46
@Nikolai:但在多个平台上尝试它(最好有不同的字节顺序或不同的sizeof(int)) – 2010-08-04 21:10:30