¿Para qué sirve "const"?
Me gustaría saber para qué se usa const. ¿Qué es lo que hace? Muchas gracias anticipadas.
/* Sin usar const */
void poner_a_cero(int *r){
*r=0;
}
/* Usando const */
void poner_a_cero(int *const r){
*r=0;
}
/* Sin usar const */
void poner_a_cero(int *r){
*r=0;
}
/* Usando const */
void poner_a_cero(int *const r){
*r=0;
}
La palabra clave "const" se utiliza con dos significados diferentes: como modificador o formando parte del operador declarador " *const ", como en tu ejemplo.
En este caso, el parámetro (int *const r) significa que r es un puntero constante a entero, o sea: se declara la intención de que r nunca va a apuntar a otro entero. Si en algún momento pretendieras que r apuntara a otra variable, el compilador lo señalaría como un error:
void poner_a_cero(int *const r) {
*r = 0; // bien
int a = 123;
r = &a; // error: no se puede redireccionar un puntero constante.
...
}
//-----------------------------------
En casos como este, algunos programadores preferirán usar una referencia en lugar de un puntero:
void poner_a_cero(int &r) {
r = 0;
}
Suerte,
Alejandro
En este caso, el parámetro (int *const r) significa que r es un puntero constante a entero, o sea: se declara la intención de que r nunca va a apuntar a otro entero. Si en algún momento pretendieras que r apuntara a otra variable, el compilador lo señalaría como un error:
void poner_a_cero(int *const r) {
*r = 0; // bien
int a = 123;
r = &a; // error: no se puede redireccionar un puntero constante.
...
}
//-----------------------------------
En casos como este, algunos programadores preferirán usar una referencia en lugar de un puntero:
void poner_a_cero(int &r) {
r = 0;
}
Suerte,
Alejandro
