Variables

En los lenguajes de programación bajo el paradigma imperativo una variable permite asociar (enlazar, ligar) (bind) un identificador al bloque de memoria que almacena un valor.

Este bloque de memoria, a través de la variable, se podrá modificar y/o inspeccionar.

Advertencia

Este concepto de variable es diferente al de las variables matemáticas, a las que se las presupone un valor fijo y desconocido.

Declaraciones y definiciones

Una declaración es una sentencia que introduce el nombre o identificador de una variable en un programa. De esta forma, el compilador conocerá respecto al identificador:

  • su tipo de dato

  • los operadores permitidos con ese valor

Una definición complementa a una declaración estableciendo respecto a la entidad declarada:

  • cuándo se crea

  • dónde se crea, es decir, su posición en memoria

int x = 10; // Creamos un bloque de memoria int con nombre x
            // y almacenamos 10
int y = x;  // Creamos un nuevo bloque de memoria int con
            // nombre y, y copiamos el contenido de x
x = 20;     // Modificamos el bloque de memoria de nombre x
            // con el valor 20

A efectos prácticos, en el ámbito de este curso, la declaración y definición de una variable tienen lugar al mismo tiempo. Por ello, lo habitual en la bibliografía es hablar en términos de declarar una variable. Veremos más adelante con las funciones que éstas se pueden declarar en una parte del programa y definir en otra.

Tipado estático

C++ usa tipado estático, que caracteriza a aquellos lenguajes en los que el tipo asociado a una variable debe fijarse antes de uso en las diferentes partes del programa.

El tipado estático permite comprobar en tiempo de compilación la correcta asignación de cada variable a un determinado tipo y, en su caso, emitir los avisos y errores pertinentes.

En lenguajes como C/C++, en el ámbito (scope) en el que está definida la variable, el nombre de la variable identifica permanentemente al bloque de memoria.

Nota

Variables en Python

Como contraposición a ese enlace permanente, en lenguajes como Python una variable es una referencia temporal a un determinado bloque de memoria.

El identificador de la variable puede ligarse a diferentes bloques de memoria a lo largo de un programa.

x = 10     # Creamos un bloque de memoria int con valor 10.
           # Se asocia la variable x a ese bloque de memoria
y = x      # Se asocia la variable y al mismo bloque de
           # memoria al que apunta x. ¡No hay copia!
x = 'Hola' # Creamos un nuevo bloque de memoria str, cadena de caracteres.
           # Se asocia la variable x a ese bloque de memoria