Cの老師見習いです。

double rei = 3.456;

scanf("%f", &rei);
printf("%f\n", rei);

みたいなコードを掻きました。scanfの"%f"は"%lf"でないといけないと
言うことですが、倍精度浮動小数点数の変数reiに、単精度浮動小数点数と
してキー入力を読み込んでも、別に支障はないと思っていたら、printfの
表示が0.000000となりました。意味が分かりません。群馬の女子高生でも
よく分かるようにどなたか説明してください。自分は高校2年です。