logo

Estático en C

Estático es una palabra clave utilizada en el lenguaje de programación C. Se puede utilizar tanto con variables como con funciones, es decir, también podemos declarar una variable estática y una función estática. Una variable ordinaria está limitada al alcance en el que está definida, mientras que el alcance de la variable estática está en todo el programa.

árbol de búsqueda binaria]

La palabra clave estática se puede utilizar en las siguientes situaciones:

    Variable global estática
    Cuando una variable global se declara con una palabra clave estática, se la conoce como variable global estática. Se declara en la parte superior del programa y su visibilidad es durante todo el programa.función estática
    Cuando una función se declara con una palabra clave estática se conoce como función estática. Su vida útil es durante todo el programa.variable local estática
    Cuando una variable local se declara con una palabra clave estática, se la conoce como variable local estática. La memoria de una variable local estática es válida en todo el programa, pero el alcance de visibilidad de una variable es el mismo que el de las variables locales automáticas. Sin embargo, cuando la función modifica la variable local estática durante la primera llamada a la función, este valor modificado también estará disponible para la siguiente llamada a la función.Variables miembro estáticas
    Cuando las variables miembro se declaran con una palabra clave estática en una clase, se conoce como variables miembro estáticas. Pueden acceder a ellos todas las instancias de una clase, no una instancia específica.método estático
    La función miembro de una clase declarada con una palabra clave estática se conoce como método estático. Es accesible para todas las instancias de una clase, no para una instancia específica.

Entendamos a través de un ejemplo.

 #include int main() { printf('%d',func()); printf('
%d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; } 

En el código anterior, se llama a la función func(). En func(), la variable de recuento se actualiza. Tan pronto como la función complete su ejecución, se eliminará la memoria de la variable de conteo. Si no queremos eliminar el recuento de la memoria, entonces debemos utilizar la variable de recuento como estática. Si declaramos la variable como estática, entonces la variable no se eliminará de la memoria incluso cuando la función complete su ejecución.

Producción

 1 1 

variable estática

Una variable estática es una variable que conserva su valor en las distintas llamadas a funciones.

Sintaxis

La sintaxis de una variable estática se proporciona a continuación:

 static data_type variable_name; 

Veamos un ejemplo simple de variable estática.

 #include int main() { printf('%d',func()); printf('
%d',func()); return 0; } int func() { static int count=0; count++; return count; } 

En el código anterior, hemos declarado la variable de recuento como estática. Cuando se llama a func(), el valor de count se actualiza a 1, y durante la siguiente llamada a la función, el valor de la variable count pasa a ser 2. Por lo tanto, podemos decir que el valor de la variable estática persiste dentro de la llamada a la función. .

Producción

 1 2 

Función estática

Como sabemos, las funciones no estáticas son globales de forma predeterminada, lo que significa que también se puede acceder a la función fuera del archivo, pero si declaramos la función como estática, limita el alcance de la función. Solo se puede acceder a la función estática dentro de un archivo.

java es nulo

La función estática se vería así:

 static void func() { printf('Hello javaTpoint'); } 

Diferencias b/n variable estática y global

Las variables globales son las variables que se declaran fuera de la función. Estas variables globales existen al comienzo del programa y su alcance permanece hasta el final del programa. También se puede acceder fuera del programa.

jsp

Las variables estáticas están limitadas al archivo fuente en el que están definidas, es decir, los otros archivos fuente no pueden acceder a ellas.

Tanto las variables estáticas como las globales tienen inicialización estática. Aquí, la inicialización estática significa que si no asignamos ningún valor a la variable, de forma predeterminada, se asignará un valor 0 a la variable.

Diferencias entre variable estática local y estática global

Variable global estática

Si la variable se declara con una palabra clave estática fuera de la función, entonces se la conoce como variable global estática. Es accesible durante todo el programa.

variable local estática

La variable con una palabra clave estática que se declara dentro de una función se conoce como variable local estática. El alcance de la variable local estática será el mismo que el de las variables locales automáticas, pero su memoria estará disponible durante toda la ejecución del programa. Cuando la función modifica el valor de la variable local estática durante una llamada a la función, permanecerá igual incluso durante la siguiente llamada a la función.

Propiedades de una variable estática

Las siguientes son las propiedades de una variable estática:

  • La memoria de una variable estática se asigna dentro de una variable estática.
  • Su memoria está disponible en todo el programa, pero el alcance seguirá siendo el mismo que el de las variables locales automáticas. Es
  • El valor persistirá en las distintas llamadas a funciones.
  • Si no asignamos ningún valor a la variable, entonces el valor predeterminado será 0.
  • No se puede acceder a una variable estática global fuera del programa, mientras que otros archivos fuente pueden acceder a una variable global.