C | Funciones | Pregunta 11 – Part 1

Salida del siguiente programa?

#include <stdio.h>
int main()
{
    int i = 5;
    printf("%d %d %d", i++, i++, i++);
    return 0;
}

(A) 7 6 5
(B) 5 6 7
(C) 7 7 7
(D)

Respuesta dependiente del compilador : (D)
Explicación: cuando se pasan parámetros a una función, el valor de cada parámetro se evalúa antes de pasarse a la función.

¿Cuál es el orden de evaluación de los parámetros: de izquierda a derecha o de derecha a izquierda?
Si el orden de evaluación es de izquierda a derecha, la salida debe ser 5 6 7 y si el orden de evaluación es de derecha a izquierda, la salida debe ser 7 6 5. Desafortunadamente, no hay un orden fijo definido por el estándar C. Un compilador puede optar por evaluar de izquierda a derecha.

Entonces, la salida depende del compilador.

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *