Saltar al contenido

C – Variables

septiembre 23, 2021

Una variable no es más que un nombre que se le da a un área de almacenamiento que nuestros programas pueden manipular. Cada variable en C tiene un tipo específico, que determina el tamaño y el diseño de la memoria de la variable; el rango de valores que se pueden almacenar dentro de esa memoria; y el conjunto de operaciones que se pueden aplicar a la variable.

El nombre de una variable puede estar compuesto por letras, dígitos y el carácter de subrayado. Debe comenzar con una letra o un guión bajo. Las letras mayúsculas y minúsculas son distintas porque C distingue entre mayúsculas y minúsculas. Según los tipos básicos explicados en el capítulo anterior, habrá los siguientes tipos de variables básicas:

No Señor. Tipo y descripción
1

carbonizarse

Normalmente, un solo octeto (un byte). Es un tipo entero.

2

En t

El tamaño de número entero más natural para la máquina.

3

flotador

Un valor de punto flotante de precisión simple.

4

doble

Un valor de coma flotante de doble precisión.

5

vacío

Representa la ausencia de tipo.

El lenguaje de programación C también permite definir varios otros tipos de variables, que cubriremos en capítulos posteriores como Enumeración, Puntero, Matriz, Estructura, Unión, etc. Para este capítulo, estudiemos solo los tipos de variables básicas.

Definición de variable en C

Una definición de variable le dice al compilador dónde y cuánto almacenamiento crear para la variable. Una definición de variable especifica un tipo de datos y contiene una lista de una o más variables de ese tipo de la siguiente manera:

type variable_list;

Aquí, escribe debe ser un tipo de datos C válido que incluya char, w_char, int, float, double, bool o cualquier objeto definido por el usuario; y lista_variable puede constar de uno o más nombres de identificadores separados por comas. Aquí se muestran algunas declaraciones válidas:

int    i, j, k;
char   c, ch;
float  f, salary;
double d;

La línea int i, j, k; declara y define las variables i, j y k; que instruyen al compilador a crear variables denominadas i, j y k de tipo int.

Las variables se pueden inicializar (asignar un valor inicial) en su declaración. El inicializador consta de un signo igual seguido de una expresión constante de la siguiente manera:

type variable_name = value;

Algunos ejemplos son:

extern int d = 3, f = 5;    // declaration of d and f. 
int d = 3, f = 5;           // definition and initializing d and f. 
byte z = 22;                // definition and initializes z. 
char x = 'x';               // the variable x has the value 'x'.

Para la definición sin un inicializador: las variables con duración de almacenamiento estático se inicializan implícitamente con NULL (todos los bytes tienen el valor 0); el valor inicial de todas las demás variables no está definido.

Declaración de variable en C

Una declaración de variable proporciona al compilador la seguridad de que existe una variable con el tipo y nombre dados, de modo que el compilador pueda proceder a una compilación adicional sin requerir los detalles completos sobre la variable. Una definición de variable tiene su significado solo en el momento de la compilación, el compilador necesita una definición de variable real en el momento de vincular el programa.

Una declaración de variable es útil cuando está utilizando varios archivos y define su variable en uno de los archivos que estarán disponibles en el momento de vincular el programa. Usarás la palabra clave externo para declarar una variable en cualquier lugar. Aunque puede declarar una variable varias veces en su programa C, solo se puede definir una vez en un archivo, una función o un bloque de código.

Ejemplo

Pruebe el siguiente ejemplo, donde las variables se han declarado en la parte superior, pero se han definido e inicializado dentro de la función principal:

#include <stdio.h>

// Variable declaration:
extern int a, b;
extern int c;
extern float f;

int main () {

   /* variable definition: */
   int a, b;
   int c;
   float f;
 
   /* actual initialization */
   a = 10;
   b = 20;
  
   c = a + b;
   printf("value of c : %d n", c);

   f = 70.0/3.0;
   printf("value of f : %f n", f);
 
   return 0;
}

Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:

value of c : 30
value of f : 23.333334

El mismo concepto se aplica a la declaración de funciones, donde se proporciona un nombre de función en el momento de su declaración y su definición real se puede dar en cualquier otro lugar. Por ejemplo

// function declaration
int func();

int main() {

   // function call
   int i = func();
}

// function definition
int func() {
   return 0;
}

Valores L y valores R en C

Hay dos tipos de expresiones en C:

  • lvalor – Las expresiones que se refieren a una ubicación de memoria se denominan expresiones «lvalue». Un lvalue puede aparecer como el lado izquierdo o derecho de una tarea.

  • rvalue – El término rvalue se refiere a un valor de datos que se almacena en alguna dirección de la memoria. Un rvalue es una expresión a la que no se le puede asignar un valor, lo que significa que un rvalue puede aparecer en el lado derecho pero no en el lado izquierdo de una asignación.

Las variables son valores l, por lo que pueden aparecer en el lado izquierdo de una tarea. Los literales numéricos son valores r y, por lo tanto, no pueden asignarse y no pueden aparecer en el lado izquierdo. Eche un vistazo a las siguientes declaraciones válidas e inválidas:

int g = 20; // valid statement

10 = 20; // invalid statement; would generate compile-time error
close