Foros del Web » Programación para mayores de 30 ;) » C/C++ »

significado de const

Estas en el tema de significado de const en el foro de C/C++ en Foros del Web. Hola tengo el siguiente puntero: t_tipo *variable ¿Qué diferencia hay en poner const en estos dos sitios? const t_tipo *variable t_tipo * const variable Graciassssss...
  #1 (permalink)  
Antiguo 03/05/2011, 01:45
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 14 años, 3 meses
Puntos: 0
significado de const

Hola tengo el siguiente puntero:

t_tipo *variable

¿Qué diferencia hay en poner const en estos dos sitios?

const t_tipo *variable
t_tipo * const variable

Graciassssss
  #2 (permalink)  
Antiguo 03/05/2011, 04:04
 
Fecha de Ingreso: abril-2011
Mensajes: 49
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: significado de const

Pues hasta donde yo se la diferencia es ninguna, const es una palabra reservada para declarar variables como constantes.
  #3 (permalink)  
Antiguo 03/05/2011, 04:33
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años, 7 meses
Puntos: 24
Respuesta: significado de const

En realidad la diferencia es bastante grande.

Código:
const t_tipo *variable
Esto declara un puntero 'normal' cuyo valor que guarda es constante, es decir si apunta a un entero que tiene un valor de 66, no podrás cambiar el ese número. Pero SI puedes cambiar la dirección donde el puntero apunta.

Código:
t_tipo * const variable
Esto en cambio declara un puntero a una dirección de memoria constante. En esta ocasión no podrás cambiar la dirección en memoria que el puntero apunta pero podrás cambiar el valor que la memoria guarda.

También puedes tener
Código:
const t_tipo * const variable
Que tiene dirección de memoria constante Y valor constante


Aquí un ejemplo rápido de la diferencia para que te quede más claro:
Código C++:
Ver original
  1. int valor1 = 1;
  2.     int valor2 = 2;
  3.  
  4.     const int* p1 = &valor1;
  5.     p1 = &valor2; //bien
  6.     *p1=22; //valor constante asi que error
  7.  
  8.     int* const p2 = &valor1;
  9.     *p2 = 11; //bien
  10.     p2 = &valor2; //intentado cambiar direccion de memoria
__________________
Foros Desarrollo de Juegos

Etiquetas: const
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:30.