¿Para qué sirve "const"?

un_principiante
17 de Marzo del 2004
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;
}

Alejandro_
17 de Marzo del 2004
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

kreezii
17 de Marzo del 2004
Const declara una variable como "constante", es decir, tendrá siempre el mismo valor. Espero que te sirva la respuesta, salu2.