Por que é scanf()necessário que l"in" %lfao ler a double, quando printf()" %f" possa ser usado, independentemente de seu argumento ser a doubleou a float?
Código de exemplo:
double d;
scanf("%lf", &d);
printf("%f", d);
&operador unário , o resultado dessa operação é um ponteiro para o local de armazenamento da variável na memória. É esse ponteiro que é passado para scanf.