考慮以下兩個方案:printf如何工作?爲什麼輸出不同?
#include <stdio.h>
int main()
{
int z = 6.4;
printf("%d %d", z, 6.4);
return 0;
}
輸出爲6 -1717986918
。
#include <stdio.h>
int main()
{
int z = 6.4;
printf("%d %d", 6.4, z);
return 0;
}
輸出是-1717986918 1075419545
。
爲什麼輸出會如此變化?當z
第一次然後輸出打印正確z
值是6
因爲z
是一個整數,但是當我顛倒了參數,輸出是一個不同的值。爲什麼它的行爲如此?
我認爲這是C,但我得到相同的,如果我編譯爲C + +:語言標記可能會讓更多的人看 – doctorlove
我只得到編譯器警告,說printf期待一個整數,而我餵它一個雙。但它編譯和打印兩個六次。你使用什麼編譯器? –
@JanezKuhar Codeblocks –