Diferencia entre las variables locales y globales en C

Como sabemos que las variables son el nombre de bloques de memoria que se utilizan para almacenar valores, en este tutorial vamos a aprender cómo declarar variables locales y globales cuáles son sus alcances en lenguaje C ?

Las variables locales

Antes de aprender acerca de la variable local, debemos aprender sobre el bloque de función y partes de función. Hay dos partes del bloque de función (medios de bloque región de la función entre llaves en C)

  1. Declaración parte – Región donde declaramos todas las variables que se van a utilizar dentro de la función (esta pieza se inicia a partir de llave de “{” ).
  2. parte ejecutable – Otros estados excepto las declaraciones son las sentencias ejecutables.

Las variables locales son las variables que se declaran o definido dentro de la parte de declaración del bloque de función.

Estas variables tienen ámbito local únicamente a la función, en la que se declaran. No se puede acceder fuera de la función.

Las variables globales

Las variables globales son las variables que se declaran o definido por debajo de la sección de archivos de cabecera inclusión o antes de la función main ().

Estas variables tienen un alcance global para el programa en el que se declaran. Se puede acceder o modificar en cualquier función del programa.

Variable global también puede ser visitada en otros archivos también (para esto, tenemos que declarar estas variables como en las necesidades de archivo de encabezado y archivos de cabecera asociados que estén incluidas dentro de archivos en particular).

Consideremos el siguiente programa

#include <stdio.h>

int a,b;

void setValues(void)
{
a=100;
b=200;
}
int main()
{

int x,y;
x=10;
y=20;
setValues();
printf("a=%d, b=%dn",a,b);
printf("x=%d, y=%dn",x,y);
return 0;
}

salida

    a=100, b=200
x=10, y=20

En este programa,
Las variables globales son: un y b
Las variables locales son: x y y

Aquí, un y b están utilizando dentro de los setValues ​​de función () y extern) función ( porque son globales y se puede acceder en cualquier lugar. main x y y están usando dentro de la () función sólo porque son locales y declarado en While () función, por lo que son accesibles sólo para el main () función es decir, su alcance es local para () sólo función.

Podemos declarar variables locales y globales con el mismo nombre?

Sí, podemos declarar variables globales y locales con el mismo nombre pero la prioridad de acceso a las variables son locales Esto significa que si una función tiene variables locales con el mismo nombre de las variables globales, se tendrá acceso a las variables locales dentro de esa función, pero si no hay variables locales con el mismo nombre que las variables globales, las variables globales se puede acceder dentro de esa función.

Consideremos el siguiente programa

#include <stdio.h>

int a,b;

void setValues(void)
{
a=100;
b=200;
}

void getValues(void)
{
printf("getValues ()...n");
printf("a=%d, b=%dn",a,b);
}
int main()
{

int a,b;
a=10;
b=20;
setValues();
printf("main ()...n");
printf("a=%d, b=%dn",a,b);
getValues();
return 0;
}

salida

    main ()...
a=10, b=20
getValues ()...
a=100, b=200

En este programa,
Las variables globales son: un y b
Las variables locales de main () son: un y b

cuando imprimir el valor de un y b en ) función (, los valores de las variables locales 10 y 20 están imprimiendo pero cuando imprimimos el valor de un y b en getValues ​​() función, los valores de las variables globales 100 y 200 se están imprimiendo.


Deja un comentario

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