1. ¿Qué es const
en C?
Al programar en C, el uso de la palabra clave const
resulta útil para evitar que el valor de una variable cambie por error. const
declara: “¡este valor no se puede modificar!”, lo que significa que, una vez asignado, no podrá cambiarse posteriormente.
Por ejemplo, observa el siguiente código:
const int x = 10;
x = 20; // ¡Error!
De este modo, const
fija el valor de x
e impide que se modifique por accidente. Es como detener a la variable cuando quiere “liberarse”, garantizando la estabilidad del programa.
2. ¿Por qué deberías usar const
?
2.1 Aumenta la seguridad del código
Con const
, reduces el riesgo de que ciertos valores o datos sean modificados accidentalmente. Por ejemplo, si cambias por error un valor crítico de configuración, todo el programa puede volverse inestable. Usar const
previene este problema.
2.2 Beneficios de la optimización del compilador
Al marcar un valor como inmutable, el compilador sabe que “este valor no cambiará” y puede optimizar el código de forma más eficiente. En muchos casos, las variables const
se almacenan en caché, mejorando el rendimiento cuando se usan con frecuencia.
2.3 Mejora la legibilidad y el trabajo en equipo
El uso de const
es una buena práctica para la legibilidad. En un entorno de desarrollo colaborativo, deja claro que “este valor no se modifica”, evitando errores cuando otros programadores trabajen con el mismo código.

3. Punteros y const
: comprendiendo la relación
La combinación de punteros y const
puede resultar confusa en C. Dependiendo de la posición de const
, cambia el comportamiento del puntero y del valor que apunta:
const int *p;
Aquí, el valor apuntado porp
(*p
) no puede cambiarse, pero el puntero sí puede apuntar a otra dirección.int *const p;
En este caso, el puntero no puede cambiar de dirección, pero el valor al que apunta (*p
) sí puede modificarse.const int *const p;
Aquí, ni el puntero ni el valor apuntado pueden cambiarse: es un estado de “¡absolutamente inmutable!”.
Los punteros son potentes, pero también propensos a errores. Por ello, presta atención a la ubicación de const
.
4. Ejemplos prácticos de uso de const
4.1 Uso en argumentos de funciones
Cuando pasas arreglos o punteros a una función y no quieres que se modifiquen, utiliza const
. Así, proteges los datos originales:
void printArray(const int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
Esto asegura que el arreglo solo se lea dentro de la función.
4.2 Uso en tablas de búsqueda (lookup tables)
En datos fijos que no deben cambiar durante la ejecución, como una tabla de búsqueda, const
es la mejor opción. Ejemplo:
const char *days[] = {"Monday", "Tuesday", "Wednesday"};
De esta forma, garantizas que los datos se mantengan estables y sin riesgo de modificación.

5. Malos usos y precauciones con const
5.1 Ejemplo de uso incorrecto
Un mal uso de const
puede generar errores de compilación. Ejemplo:
void modifyArray(const int arr[], int size) {
arr[0] = 10; // ¡Error de compilación!
}
En este caso, el arreglo fue declarado como const
, por lo que sus elementos no pueden modificarse.
5.2 Precauciones con cast y const
Es posible eliminar la restricción con const_cast
, pero conlleva riesgos serios: puede causar comportamientos indefinidos y depender del sistema. En general, lo recomendable es evitarlo y respetar la inmutabilidad declarada por const
.
6. Conclusión
El uso de const
en C es clave para mejorar la seguridad, optimizar el rendimiento y prevenir errores. Aplicarlo correctamente en variables, punteros y funciones garantiza mayor estabilidad en el programa.
La próxima vez que escribas código en C, prueba a incluir const
. Seguro encontrarás más lugares donde puede ayudarte a escribir un código más sólido y confiable.