register y const
Indicaciones e inmutabilidad
register y const es una lección gratuita de C Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C Academy incluye 4 lecciones en total.
La sugerencia register
register sugiere mantener una variable en un registro de la CPU para mejorar la velocidad. Solo es una sugerencia; los compiladores modernos normalmente la ignoran.
#include <stdio.h>
int main(void) {
register int i;
int sum = 0;
for (i = 0; i < 5; i++)
sum += i;
printf("sum = %d\n", sum);
return 0;
}No puede obtener su dirección
Como una variable register podría no residir en memoria, no puede obtener su dirección con &.
#include <stdio.h>
int main(void) {
register int x = 10;
printf("x = %d\n", x);
return 0;
}Por qué register rara vez se usa hoy
Los compiladores optimizadores ya colocan las variables de uso frecuente en registros. Actualmente, la palabra clave es sobre todo histórica.
#include <stdio.h>
int main(void) {
int product = 1;
for (register int i = 1; i <= 4; i++)
product *= i;
printf("product = %d\n", product);
return 0;
}El calificador const
const convierte una variable en de solo lectura después de su inicialización. Intentar cambiarla produce un error de compilación.
#include <stdio.h>
int main(void) {
const int DAYS = 7;
printf("DAYS = %d\n", DAYS);
return 0;
}Las constantes documentan la intención
Usar const para valores fijos hace que el código sea más claro y protege contra cambios accidentales.
#include <stdio.h>
int main(void) {
const double PI = 3.14159;
double r = 2.0;
printf("area = %.2f\n", PI * r * r);
return 0;
}const con punteros
const int *p significa que el valor apuntado no puede cambiar a través de p. El puntero sí puede cambiar de dirección.
#include <stdio.h>
int main(void) {
int x = 5;
const int *p = &x;
printf("*p = %d\n", *p);
return 0;
}Puntero constante
int * const p significa que el puntero no puede cambiar, pero el valor al que apunta sí puede hacerlo.
#include <stdio.h>
int main(void) {
int x = 5;
int * const p = &x;
*p = 9;
printf("x = %d\n", x);
return 0;
}Parámetros de función const
Marcar un parámetro como const garantiza que la función no lo modificará, lo que ayuda a quienes la llaman a razonar sobre su comportamiento.
#include <stdio.h>
void show(const int n) {
printf("n = %d\n", n);
}
int main(void) {
show(42);
return 0;
}Inmutabilidad por diseño
Prefiera const para cualquier valor que no deba cambiar. Esto permite detectar errores en tiempo de compilación.
#include <stdio.h>
int main(void) {
const int LIMIT = 100;
int x = 90;
if (x < LIMIT)
printf("under limit\n");
return 0;
}Combinar const y variables globales
Una variable global const es una constante compartida y segura, disponible en todo el archivo.
#include <stdio.h>
const int VERSION = 2;
int main(void) {
printf("VERSION = %d\n", VERSION);
return 0;
}register y const juntos
Incluso puede marcar un contador de bucle de ambas formas, aunque aquí const significa que el cuerpo del bucle no debe modificarlo.
#include <stdio.h>
int main(void) {
int sum = 0;
for (int i = 0; i < 3; i++) {
const int doubled = i * 2;
sum += doubled;
}
printf("sum = %d\n", sum);
return 0;
}Comprobación rápida
Compruebe su comprensión de register y const.
Repaso: register y const
Ha aprendido sobre dos calificadores.
registersugiere almacenamiento en un registro, pero normalmente se ignora- No puede obtener la dirección de una variable register
constconvierte un valor en de solo lectura- La constancia de los punteros tiene dos variantes: valor const frente a puntero const
- Use
constcon generosidad para mejorar la seguridad
Preguntas frecuentes
¿La lección «register y const» es gratis?
Sí — el texto completo de «register y const» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C Academy, actualiza a CoddyKit PRO. El curso de C Academy incluye 4 lecciones en total.
¿Qué aprenderé en «register y const»?
Indicaciones e inmutabilidad Practicas C Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar C Academy?
No se requiere experiencia previa. C Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «register y const»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de C Academy?
Sí. Cada lección de C Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- auto y ámbito local
- Variables static
- extern y global
- register y const