¿Qué sucederá cuando compilemos y ejecutemos el siguiente fragmento de programa en C?
#include "stdio.h" int main() { int a = 10; int b = 15; printf("=%d",(a+1),(b=a+2)); printf(" %d=",b); return 0; }
(A) =11 15=
(B) =11 12=
(C) Error del compilador debido a (b=a+2) en el primer printf().
(D) No hay error de compilación pero la salida sería =11 X= donde X dependería de la implementación del compilador.
Respuesta: (B)
Explicación: Según el estándar C11 de C, todos los argumentos de printf() se evalúan independientemente de si se imprimen o no. Es por eso que (b=a+2) también se evaluaría y el valor de b sería 12 después del primer printf(). Es por eso que la respuesta correcta es B.
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