C | Clases de almacenamiento y calificadores de tipo | Pregunta 19 – Part 6

Salida del siguiente programa?

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

(A) 4 3 2 1
(B) 1 2 3 4
(C) 0 0 0 0
(D) Error del compilador

Respuesta: (C)
Explicación: una variable estática se comparte entre todas las llamadas de una función. Todas las llamadas a main() en el programa dado comparten el mismo i. i se convierte en 0 antes de la instrucción printf() en todas las llamadas a main().

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 *