引数が または のどちらであってもを使用できるのに、を読み込むときにで がscanf()
必要なのはなぜですか?l
%lf
double
printf()
%f
double
float
コード例:
double d;
scanf("%lf", &d);
printf("%f", d);
ベストアンサー1
C は、可変引数を取る関数の場合、float を double に昇格させるためです。ポインターはどこにも昇格されないため、 double を読み込むには%lf
、、%lg
または%le
( %la
C99 では または ) を使用する必要があります。