Variables y palabras clave en C

Una variable en términos simples es un lugar de almacenamiento que tiene algo de memoria asignada. Básicamente, una variable se utiliza para almacenar algún tipo de datos. Diferentes tipos de variables requieren diferentes cantidades de memoria, diferentes tipos de ubicaciones de memoria y algún conjunto específico de operaciones que se les puedan aplicar. 

Declaración de variable:  una declaración de variable típica tiene la forma: 

  type variable_name;
    or for multiple variables:
  type variable1_name, variable2_name, variable3_name;

Un nombre de variable puede constar de letras (tanto mayúsculas como minúsculas), números y el carácter de subrayado ‘_’. Sin embargo, el nombre no debe comenzar con un número.
A continuación se muestra un ejemplo de variables en lenguaje C,

C

#include <stdio.h>
 
int main()
{
    int b = 17, c = 18;
    char a1 = 'J';
    printf("Character value : %c\n", a1);
    printf("Integer value : %d\t%d\n", b, c);
    return 0;
}
Producción

Character value : J
Integer value : 17    18

Diferencia b/n declaración y definición de variable: La declaración de variable se refiere a la parte en la que una variable se declara o introduce por primera vez antes de su primer uso. La declaración del tipo de variable también se realiza en la parte. Una definición de variable es una parte donde a la variable se le asigna una ubicación de memoria y un valor. La mayoría de las veces, la declaración y definición de variables se realizan juntas.

A continuación se muestra el programa C para una mejor aclaración:  

C

#include <stdio.h>
int main()
{
    // declaration and definition of variable 'a123'
    char a123 = 'a';
 
    // This is also both declaration and definition as 'b' is allocated
    // memory and assigned some garbage value.  
    float b; 
 
    // multiple declarations and definitions
    int _c, _d45, e;
 
    // Let us print a variable
    printf("%c \n", a123);
 
    return 0;
}
Producción

a 

¿Es posible tener una declaración y una definición separadas? ¿Es posible en el caso de variables y funciones externas ? Vea la pregunta 1 de esto para más detalles. 

Reglas para definir variables

  1. Una variable puede tener letras, dígitos y guiones bajos.
  2. Un nombre de variable puede comenzar con el alfabeto y subrayar solamente. No puede comenzar con un dígito.
  3. No se permiten espacios en blanco dentro del nombre de la variable.
  4. Un nombre de variable no debe ser ninguna palabra o palabra clave reservada, por ejemplo, int, goto, etc.

Ejemplo: _srujan, srujan_poojari, srujan812, srujan_812

      No podemos declarar una variable en la forma:

  1. srujan poojari (contiene un amplio espacio entre srujan y poojari)
  2. 13srujan (comienza con un número, por lo que no podemos declararlo como una variable)
  3. void, char, int (no podemos declararlos como variables porque ya tienen asignadas algunas funciones en la biblioteca de programación C)

Tipos de Variables en C 

1. Variable local: una variable que se declara y utiliza dentro de la función o bloque se denomina variable local. Su alcance se limita a la función o bloque. No se puede utilizar fuera del bloque. Las variables locales deben inicializarse antes de su uso.

Ejemplo:

C

#include <stdio.h>
void function() {
  int x = 10; // local variable
}
 
int main()
{
  function();
}
Producción

 

En el código anterior, x solo se puede usar en el ámbito de function() . Usarlo en la función principal dará un error.

2. Variable global: una variable que se declara fuera de la función o bloque se denomina variable global. Se declara al inicio del programa. Está disponible para todas las funciones. 

Ejemplo:

C

#include <stdio.h>
int x = 20;//global variable
void function1()
{
  printf("%d\n" , x);
}
void function2()
{
  printf("%d\n" , x);
}
int main() {
 
  function1();
  function2();
    return 0;
}
Producción

20
20

En el código anterior, ambas funciones pueden usar la variable global x, ya que todas las funciones pueden acceder a las variables globales.

3. Variable estática: una variable que conserva su valor entre múltiples llamadas a funciones se conoce como variable estática. Se declara con la palabra clave static.

Ejemplo: 

C

#include <stdio.h>
void function(){ 
int x = 20;//local variable 
static int y = 30;//static variable 
x = x + 10; 
y = y + 10; 
printf("\n%d,%d",x,y); 
} 
int main() {
 
  function();
  function();
  function();
  return 0;
}
Producción

30,40
30,50
30,60

En el ejemplo anterior, la variable local siempre imprimirá el mismo valor cada vez que se llame a la función, mientras que la variable estática imprimirá el valor incrementado en cada llamada de función.

4 . Variable Automática: Todas las variables en C que se declaran dentro del bloque, son variables automáticas por defecto. Podemos declarar explícitamente una variable automática usando la palabra clave auto. Las variables automáticas son similares a las variables locales. 

Ejemplo:

C

#include <stdio.h>
void function()
{
  int x=10;//local variable (also automatic) 
  auto int y=20;//automatic variable
}
int main() {
 
    function();
    return 0;
}
Producción

 

En el ejemplo anterior, tanto x como y son variables automáticas. La única diferencia es que la variable y se declara explícitamente con la palabra clave auto .

5 . Variable externa: las variables externas se pueden compartir entre varios archivos C. Podemos declarar una variable externa usando la  palabra clave extern .

Ejemplo: 

  myfile.h

  extern int x=10;//external variable (also global)  

   
  program1.c
  #include "myfile.h"  
  #include <stdio.h>  
  void printValue(){  
  printf("Global variable: %d", global_variable);  
  }

En el ejemplo anterior, x es una variable externa que se usa en varios archivos.

Keywords : 
Son palabras reservadas cuyo significado ya conoce el compilador. Hay 32 palabras clave disponibles en c:

   auto                                 double                               int                                struct
   break                                long                                 else                               switch
   case                                 return                               enum                               typedef
   char                                 register                             extern                             union
   const                                short                                float                              unsigned
   continue                             signed                                for                                void
   default                              sizeof                                goto                               volatile
    do                                  static                                if                                 while

La mayoría de estas palabras clave ya se han discutido en las diversas subsecciones del lenguaje C , como tipos de datos, clases de almacenamiento, declaraciones de control, funciones, etc.

Discutamos algunas de las otras palabras clave que nos permiten usar la funcionalidad básica de C:

const : const se puede usar para declarar variables constantes. Las variables constantes son variables que, cuando se inicializan, no pueden cambiar su valor. O dicho de otro modo, el valor que se les asigna no se puede modificar más abajo en el programa. 

Sintaxis: 

const data_type var_name = var_value;

Nota: Las variables constantes deben inicializarse durante su declaración. La palabra clave const también se usa con punteros. Consulte el calificador const en C para comprender lo mismo.

externo: extern simplemente nos dice que la variable está definida en otro lugar y no dentro del mismo bloque donde se usa. Básicamente, el valor se le asigna en un bloque diferente y esto también se puede sobrescribir/cambiar en un bloque diferente. Entonces, una variable externa no es más que una variable global inicializada con un valor legal donde se declara para usarse en otro lugar. Se puede acceder desde cualquier función/bloque. Además, una variable global normal también se puede convertir en externa colocando la palabra clave ‘externa’ antes de su declaración/definición en cualquier función/bloque. Básicamente, esto significa que no estamos inicializando una nueva variable, sino que estamos usando/accediendo solo a la variable global. El objetivo principal de usar variables externas es que se puede acceder a ellas entre dos archivos diferentes que forman parte de un programa grande. 

Sintaxis: 

extern data_type var_name = var_value;

estática : la palabra clave estática se usa para declarar variables estáticas, que se usan popularmente al escribir programas en lenguaje C. ¡Las variables estáticas tienen la propiedad de preservar su valor incluso después de que estén fuera de su alcance! Por lo tanto, las variables estáticas conservan el valor de su último uso en su alcance. Entonces podemos decir que se inicializan solo una vez y existen hasta la finalización del programa. Por lo tanto, no se asigna memoria nueva porque no se vuelven a declarar. Su alcance es local a la función para la que fueron definidos. Se puede acceder a las variables estáticas globales desde cualquier lugar dentro de ese archivo, ya que su alcance es local para el archivo. Por defecto, el compilador les asigna el valor 0. 
Sintaxis: 

static data_type var_name = var_value;

void : void es un tipo de datos especial. Pero, ¿qué lo hace tan especial? void, como literalmente significa, es un tipo de datos vacío. Significa que no tiene nada o no tiene valor. Por ejemplo, cuando se utiliza como tipo de datos de retorno para una función, simplemente representa que la función no devuelve ningún valor. De manera similar, cuando se agrega al encabezado de una función, representa que la función no toma argumentos. 
Nota: void también tiene un uso importante con punteros. Consulte el puntero vacío en C para comprender lo mismo.

typedef : typedef se usa para dar un nuevo nombre a un tipo de datos ya existente o incluso personalizado (como una estructura). Es muy útil a veces, por ejemplo, en un caso en el que el nombre de la estructura definida por usted es muy largo o simplemente necesita una notación abreviada de un tipo de datos preexistente.

Implementemos las palabras clave que hemos discutido anteriormente. Eche un vistazo al siguiente código, que es un ejemplo de trabajo para demostrar estas palabras clave:  

Ejemplo

C

#include <stdio.h>
 
// declaring and initializing an extern variable
extern int x = 9;
 
// declaring and initializing a global variable
// simply int z; would have initialized z with
// the default value of a global variable which is 0
int z = 10;
 
// using typedef to give a short name to long long int
// very convenient to use now due to the short name
typedef long long int LL;
 
// function which prints square of a no. and which has void
// as its return data type
void calSquare(int arg)
{
    printf("The square of %d is %d\n", arg, arg * arg);
}
 
// Here void means function main takes no parameters
int main(void)
{
    // declaring a constant variable, its value cannot be
    // modified
    const int a = 32;
 
    // declaring a char variable
    char b = 'G';
 
    // telling the compiler that the variable z is an extern
    // variable and has been defined elsewhere (above the
    // main function)
    extern int z;
 
    LL c = 1000000;
 
    printf("Hello World!\n");
 
    // printing the above variables
    printf("This is the value of the constant variable "
           "'a': %d\n",
           a);
    printf("'b' is a char variable. Its value is %c\n", b);
    printf("'c' is a long long int variable. Its value is "
           "%lld\n",
           c);
    printf("These are the values of the extern variables "
           "'x' and 'z'"
           " respectively: %d and %d\n",
           x, z);
 
    // value of extern variable x modified
    x = 2;
 
    // value of extern variable z modified
    z = 5;
 
    // printing the modified values of extern variables 'x'
    // and 'z'
    printf("These are the modified values of the extern "
           "variables"
           " 'x' and 'z' respectively: %d and %d\n",
           x, z);
 
    // using a static variable
    printf("The value of static variable 'y' is NOT "
           "initialized to 5 after the "
           "first iteration! See for yourself :)\n");
 
    while (x > 0) {
        static int y = 5;
        y++;
        // printing value at each iteration
        printf("The value of y is %d\n", y);
        x--;
    }
 
    // print square of 5
    calSquare(5);
 
    printf("Bye! See you soon. :)\n");
 
    return 0;
}

Producción: 

Hello World
This is the value of the constant variable 'a': 32
'b' is a char variable. Its value is G
'c' is a long long int variable. Its value is 1000000
These are the values of the extern variables 'x' and 'z' respectively: 9 and 10
These are the modified values of the extern variables 'x' and 'z' respectively: 2 and 5
The value of static variable 'y' is NOT initialized to 5 after the first iteration! See for yourself :)
The value of y is 6
The value of y is 7
The square of 5 is 25
Bye! See you soon. :)

Este artículo es una contribución de Ayush Jaggi . Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

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

Deja una respuesta

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