Cómo trabajar con variables estáticas en C
Dentro de una función, puedes inicializar una variable estática usando la static
palabra clave.
Dije “dentro de una función”, porque las variables globales son estáticas por defecto, por lo que no es necesario agregar la palabra clave.
¿Qué es una variable estática? Una variable estática se inicializa en 0 si no se especifica ningún valor inicial y conserva el valor en todas las llamadas de función.
Considere esta función:
int incrementAge() { int age = 0; age++; return age;}
Si lo llamamos incrementAge()
una vez, obtendremos 1
como valor de retorno. Si lo llamamos más de una vez, siempre obtendremos 1, porque age
es una variable local y se reinicializa en 0
cada llamada de función.
Si cambiamos la función a:
int incrementAge() { static int age = 0; age++; return age;}
Ahora, cada vez que llamamos a esta función, obtendremos un valor incrementado:
printf("%dn", incrementAge());printf("%dn", incrementAge());printf("%dn", incrementAge());
nos daráTe recomendamos Olla express a presion
123
También podemos omitir la inicialización age
a 0 en static int age = 0;
, y solo escribir static int age;
porque las variables estáticas se establecieron automáticamente a 0 cuando se crean.
También podemos tener matrices estáticas. En este caso, cada elemento de la matriz se inicializa a 0:
int incrementAge() { static int ages[3]; ages[0]++; return ages[0];}
Tips C
Tal vez te puede interesar:
- Introducción a React
- Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
- Cómo cambiar el valor de un nodo DOM
- Cómo comprobar si un elemento DOM tiene una clase
Variables estáticas en C
Dentro de una función, puedes inicializar una variable estática usando la staticpalabra clave. Cómo trabajar con variables estáticas en C Cómo trabajar co
programar
es
2025-01-06
Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente