main()
{
printf("%f",1);
}
私が期待した出力は1.000000
、つまりint 1がdouble 1.000000にアップキャストされたというものでしたが、それは0.000000
. なぜそうなのですか?
main()
{
printf("%f",1);
}
私が期待した出力は1.000000
、つまりint 1がdouble 1.000000にアップキャストされたというものでしたが、それは0.000000
. なぜそうなのですか?
フォーマット ディレクティブ (この場合は anint
から a %f
) に一致しない引数が指定された場合、結果の動作はundefinedになります。
この質問、またはそのバリエーションが定期的に出てき ます。 int を float として印刷するときの printf の動作は何ですか? を参照してください。printf関数に問題がありますか?例/詳細については。