Escribí un progtwig simple donde int a = 10
el o / p que esperaba era 10 9 9
printf("a++:%d \ta:%d \t --a: %d \n", a++, a, --a);
pero el o / p que se obtiene es 9 10 10
Escribí otro printf como printf(" a:%d \t --a: %d \n", a, --a);
el o / p que tengo es 9 9
¿Alguien puede explicarme sobre esto?
Está experimentando un comportamiento indefinido , al tener múltiples expresiones con efectos secundarios, sin puntos de secuencia entre ellos .
No hay garantía de que los argumentos de la función de orden se evalúen, por lo que no hay manera de “esperar” algo aquí (a menos que hayas escrito el comstackdor).