Constantes y variables
Las constantes y variables son estructuras fundamentales en programación que permiten almacenar y manipular datos en la memoria de la computadora. Ambas representan espacios de memoria con un nombre asociado (identificador), pero se diferencian en que el valor de una variable puede cambiar durante la ejecución del programa, mientras que el valor de una constante permanece fijo e inmutable.
Definiciones
| Concepto |
Descripción |
| Variable |
Espacio en memoria que almacena un valor que puede modificarse durante la ejecución del programa. Su nombre identifica la ubicación de memoria donde se guarda el dato. |
| Constante |
Espacio en memoria que almacena un valor que no puede modificarse una vez asignado. Su valor permanece fijo durante toda la ejecución del programa. |
Diferencias clave
| Característica |
Variable |
Constante |
| Mutabilidad |
Su valor puede cambiar |
Su valor NO puede cambiar |
| Asignación |
Se puede asignar múltiples veces |
Se asigna una sola vez (al declararla o inicializarla) |
| Uso típico |
Datos que evolucionan durante el programa (contadores, acumuladores, entradas de usuario) |
Valores fijos que no deben alterarse (PI, gravedad, configuraciones) |
| Seguridad |
Menor (puede modificarse accidentalmente) |
Mayor (protege contra modificaciones no deseadas) |
| Memoria |
Generalmente igual (depende del lenguaje y optimizaciones) |
Similar, pero el compilador puede optimizar su uso |
Sintaxis según lenguajes
C / C++
// Variables
int edad = 25;
float altura = 1.75;
edad = 26; // ✅ Válido: cambia el valor
// Constantes
const int DIAS_SEMANA = 7;
const float PI = 3.14159;
// DIAS_SEMANA = 8; // ❌ Error: no se puede modificar una constante
Java
// Variables
int contador = 0;
contador = contador + 1; // ✅ Válido
// Constantes (con final)
final double GRAVEDAD = 9.81;
// GRAVEDAD = 9.82; // ❌ Error: no se puede reasignar
Python
## Variables
nombre = "Ana"
nombre = "Luis" # ✅ Válido: la variable cambia
## Constantes (por convención, no hay const nativa)
PI = 3.14159 # Por convención, MAYÚSCULAS indican constante
## Python no impide modificar PI, es una convención del programador
JavaScript
// Variables
let edad = 25;
edad = 26; // ✅ Válido
// Constantes
const IVA = 0.21;
// IVA = 0.22; // ❌ Error: Assignment to constant variable
Declaración e inicialización
| Término |
Descripción |
| Declarar |
Crear la variable/constante, definiendo su nombre y tipo (en lenguajes con tipado estático). |
| Inicializar |
Asignar un valor inicial por primera vez. |
| Asignar |
Dar un valor a una variable (para constantes solo ocurre al inicializar). |
// Ejemplo en Java
int x; // Declaración (sin inicializar)
x = 10; // Asignación
int y = 20; // Declaración + inicialización
final int MAX = 100; // Declaración + inicialización de constante
Clasificación según ámbito
Por su ámbito (scope)
| Tipo |
Descripción |
| Locales |
Declaradas dentro de una función o bloque. Solo existen dentro de ese ámbito. |
| Globales |
Declaradas fuera de cualquier función. Accesibles desde cualquier parte del programa. |
| De clase/instancia |
En POO, atributos que pertenecen a una clase o a objetos específicos. |
## Ejemplo de ámbitos
global_var = 10 # Variable global
def mi_funcion():
local_var = 5 # Variable local
print(global_var) # Puede acceder a global
print(local_var)
## print(local_var) # ❌ Error: local_var no existe fuera de la función
Nomenclatura y convenciones
| Lenguaje |
Variable |
Constante |
| C/C++/Java |
camelCase o snake_case |
MAYÚSCULAS_CON_GUIONES |
| Python |
snake_case |
MAYÚSCULAS_CON_GUIONES (por convención) |
| JavaScript |
camelCase |
MAYÚSCULAS_CON_GUIONES (para const) |
## Python - convenciones
nombre_usuario = "Carlos" # variable
MAX_INTENTOS = 3 # constante (por convención)
Ejemplos prácticos
Ejemplo 1: Contador con variable
## Variable como contador
intentos = 0
while intentos < 3:
print(f"Intento {intentos + 1}")
intentos = intentos + 1 # La variable cambia
## Salida: Intento 1, Intento 2, Intento 3
Ejemplo 2: Constantes para valores fijos
// Constantes para valores que no cambian
public class Calculadora {
static final double PI = 3.14159265359;
static final double GRAVEDAD = 9.81;
public double calcularAreaCirculo(double radio) {
return PI * radio * radio; // PI nunca cambia
}
}
Ejemplo 3: Variables que almacenan entradas
// Variables para entrada de usuario
int edad;
printf("Ingrese su edad: ");
scanf("%d", &edad); // La variable recibe el valor ingresado
edad = edad + 1; // Luego se modifica
printf("El año que viene tendrá %d años", edad);
Buenas prácticas
| Práctica |
Descripción |
| Usar constantes para valores fijos |
En lugar de escribir números "mágicos", usar constantes con nombre significativo. |
| Inicializar siempre las variables |
Evitar valores basura o comportamientos indefinidos. |
| Limitar el ámbito |
Declarar variables en el ámbito más pequeño posible. |
| Nombres descriptivos |
Usar nombres que indiquen el propósito: totalVentas en lugar de t o x. |
| Constantes en mayúsculas |
Seguir la convención de mayúsculas para constantes visibles. |
// Mal ejemplo
double area = 3.14159 * r * r; // ¿Qué es 3.14159?
// Buen ejemplo
final double PI = 3.14159;
double area = PI * radio * radio;
Comparación rápida
| Aspecto |
Variable |
Constante |
| ¿Puede cambiar su valor? |
✅ Sí |
❌ No |
| ¿Cuándo se asigna? |
En cualquier momento |
Solo al declarar/inicializar |
| ¿Cuándo usar? |
Datos que evolucionan |
Valores fijos y configuración |
| Ejemplos |
contador, acumulador, resultado |
PI, IVA, límites, configuraciones |
En resumen: Las variables son espacios de memoria cuyo valor puede cambiar durante la ejecución, ideales para datos dinámicos como contadores o entradas de usuario. Las constantes almacenan valores fijos que no deben modificarse, mejorando la seguridad, legibilidad y mantenibilidad del código. Ambos son elementos esenciales para almacenar y manipular información en cualquier programa.