el siguiente programa
main() { inc(); inc(); inc(); } inc() { static int x; printf("%d", ++x); }
(A) imprime 012
(B) imprime 123
(C) imprime 3 números consecutivos pero impredecibles
(D) imprime 111
Respuesta: (B)
Explicación: Dado que el valor de x no está declarado, automáticamente obtendría 0 como su valor inicial. La primera vez que se llama a inc() en main(), el valor de x se incrementará en 1.
Las variables estáticas conservan su valor anterior en su ámbito anterior y no se inicializan de nuevo en el nuevo ámbito. Entonces, cuando se llama a inc() por segunda y tercera vez, el valor de x simplemente se incrementa en 1. Es por eso que la respuesta correcta es 123
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