Discussion:
Para que vale la palabra reservada "const" ?
(demasiado antiguo para responder)
Tito
2005-02-18 15:49:07 UTC
Permalink
Pues eso ¿para que vale "const" ?. Yo pense que era para declarar
variables que no podian ser modificadas, pero si hago

const int valor=7;
printf("%d",valor);

valor=9;
printf("%d",valor);

me modifica correctamente el valor de la variable const. Yo pensaba
que ni siquiera deberia compilar, o en tal caso que mostrara el valor
sin modificar, pero si lo ejecuto me imprime un 7 y un 9, es decir, si
modifica el valor.
Lepton
2005-02-18 17:50:28 UTC
Permalink
On Fri, 18 Feb 2005, Tito wrote:

# Pues eso ¿para que vale "const" ?. Yo pense que era para declarar
# variables que no podian ser modificadas, pero si hago
#
# const int valor=7;
# printf("%d",valor);
#
# valor=9;
# printf("%d",valor);
#
# me modifica correctamente el valor de la variable const. Yo pensaba
# que ni siquiera deberia compilar, o en tal caso que mostrara el valor
# sin modificar, pero si lo ejecuto me imprime un 7 y un 9, es decir, si
# modifica el valor.

Que compilador usas?

Al menos con gcc 3.4.2 me sale:

$ gcc a.c
a.c: In function `main':
a.c:8: error: assignment of read-only variable `valor'

Saludos,
Lepton.
Horst Kraemer
2005-02-18 18:16:54 UTC
Permalink
Post by Tito
Pues eso ¿para que vale "const" ?. Yo pense que era para declarar
variables que no podian ser modificadas, pero si hago
const int valor=7;
printf("%d",valor);
valor=9;
printf("%d",valor);
me modifica correctamente el valor de la variable const.
¿Cómo?

int main()
{
const int valor=7;
valor=9;
}

Error E202: cannot modify a const object in function main.
Post by Tito
Yo pensaba
que ni siquiera deberia compilar, o en tal caso que mostrara el valor
sin modificar, pero si lo ejecuto me imprime un 7 y un 9, es decir, si
modifica el valor.
¿Qué compilador compila eso?
--
Horst
Loading...