Warum benötigt scanf () "% lf" für Doppel, wenn printf () nur mit "% f" einverstanden ist?

Warum scanf()braucht es das lin " %lf" beim Lesen von a double, wann printf()kann " %f" verwendet werden, unabhängig davon, ob sein Argument a doubleoder a ist float? Beispielcode: double d; scanf("%lf", &d); printf("%f",