Uso de & en scanf() pero no en printf()

¿Por qué es necesario usar ‘&’ en el caso de la función scanf mientras que no en el caso de la función printf?

Ejemplos:

scanf("%d %d", &a, &b);
printf("%d %d", a, b);

Como a y b arriba son dos variables y cada una tiene su propia dirección asignada, pero en lugar de a y b, enviamos la dirección de a y b respectivamente. La razón es que scanf() necesita modificar los valores de ayb y son locales para scanf(). Entonces, para reflejar los cambios en las variables a y b de la función principal, debemos pasarles las direcciones. No podemos simplemente pasarlos por valor.
Pero en el caso de la función printf, ya que solo imprimiremos los valores de las variables en la consola de salida, no se realizarán cambios en los valores de las variables a y b. Por lo tanto, no es necesario enviar sus direcciones.

Publicación traducida automáticamente

Artículo escrito por UPENDRA BARTWAL, y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *