En C, si un objeto que tiene una duración de almacenamiento estático no se inicializa explícitamente, entonces:
— si tiene un tipo de puntero, se inicializa como un puntero NULL;
— si es de tipo aritmético, se inicializa a cero (positivo o sin signo);
— si es un agregado, cada miembro se inicializa (recursivamente) de acuerdo con estas reglas;
— si es una unión, el primer miembro nombrado se inicializa (recursivamente) de acuerdo con estas reglas.
Por ejemplo, el siguiente programa imprime:
Valor de g = 0
Valor de sg = 0
Valor de s = 0
#include<stdio.h> int g; //g = 0, global objects have static storage duration static int gs; //gs = 0, global static objects have static storage duration int main() { static int s; //s = 0, static objects have static storage duration printf("Value of g = %d", g); printf("\nValue of gs = %d", gs); printf("\nValue of s = %d", s); getchar(); return 0; }
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Referencias:
El estándar C99
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