Diferencia entre las variables automáticas (automático) y estáticas en un lenguaje C.

En este tutorial de C, vamos a aprender acerca de las dos clases de almacenamiento auto (automático) y static . ¿Cuáles son las variables automáticas y variables static, ¿cuáles son las diferencias entre ellos ?

Requisito: clases de almacén en C

automática ( auto ) y static tanto son las palabras clave que se utilizan en las clases de almacenamiento, y definen el segmento de alcance, tiempo de vida, el valor default y la memoria de las variables.

1) Automático ( ‘auto’) variable de

Las todas las variables locales que se definen dentro de la función son conocidos como auto () variables automáticas a menos que no expresados ​​es decir por default una variable local es una variable auto. No hay necesidad de poner la palabra clave auto (que es opcional) while declarar una variable local.

variables Un auto creado una nueva cada vez que la función (en el que se declara variable) se llama y destruyó cuando las hojas de ejecución del programa de la función.

Ejemplo:

#include <stdio.h>
int main()
{
int a;
auto int b;
a=10; b=20;
printf("a=%d, b=%dn",a,b);
return 0;
}

salida

    a=10, b=20

Nota: Aquí, un y b ambos son automática las variables ( auto ).

2) variables de Static

Es mucho similar a la variable automática; todas las propiedades son casi iguales, excepto unos pocos. Una variable static no crea un nuevo cada vez y no destruye cuando las hojas de ejecución del programa de la función. Declara una vez y destruye una vez cuando finaliza la ejecución del programa .

Declaración Sintaxis:

static data_type variable_name = initial_value;

Declaración Ejemplo:

static int count =0;

Ejemplo:

#include <stdio.h>
void fun(void)
{
auto int a=0;
static int b=0;
printf("a = %d, b = %dn",a,b);
a++;
b++;
}
int main()
{
int loop;
//calling function 10 times
for(loop=0; loop<5; loop++)
fun();
return 0;
}

salida

    a = 0, b = 0
a = 0, b = 1
a = 0, b = 2
a = 0, b = 3
a = 0, b = 4

En la función diversión () , variables un es automática y b es static. De acuerdo con la propiedad ‘a’ se inicializar cada vez que la función se llama, pero b es static por lo que se inicia una vez.

diferencias entre las variables static y auto

variables automáticas ()
Static variables de

Por default todas las variables locales son variables automático. Palabra clave auto se puede utilizar para declarar una variable automática, pero no es necesario. static palabra clave debe ser utilizado para declarar una variable static.
alcance de la variable automática siempre es local a esa función, en el que se declaran es decir, variable automática, puede ser accesible dentro del mismo bloque. Static alcance de variable también es local a esa función en la que se declaran es decir static variable puede ser accesible dentro del mismo bloque.
tiempo de vida de la variable automática es local (limitado), variables automáticas de salida hasta el tiempo de ejecución de funciones, cuando las hojas de ejecución del programa la ejecución de la función, las variables son destruidos. tiempo de vida de la variable Static no está limitado. Desde su alcance es local pero la variable será en vivo (existir) hasta la ejecución del programa.
Las variables automáticas crean una nueva cada vez que la ejecución del programa entra en la función y destruye cuando las hojas. Static variable de crear una vez, cuando la ejecución del programa entra en la función primera vez, destruye cuando finaliza la ejecución del programa, que no do nuevo.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *