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

Punteros

Estas en el tema de Punteros en el foro de C/C++ en Foros del Web. Hola muy buenas! Mi pregunta es sencilla, pero es qno sé a qué se refiere: cuando tenemos por ejemplo *(p+2) = 7 Qué significa exactamente?? ...
  #1 (permalink)  
Antiguo 01/06/2011, 15:21
 
Fecha de Ingreso: noviembre-2010
Mensajes: 93
Antigüedad: 14 años, 1 mes
Puntos: 1
Punteros

Hola muy buenas!
Mi pregunta es sencilla, pero es qno sé a qué se refiere:
cuando tenemos por ejemplo
*(p+2) = 7
Qué significa exactamente?? sé q es el destino de p +2 que le da el valor de 7, pero no entiendo muy bien ese +2
Muchas gracias!
  #2 (permalink)  
Antiguo 01/06/2011, 18:23
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: Punteros

p en este caso deberia ser un puntero. un puntero es un numero de 32 o 64 bits que representa un sector de memoria RAM.
Entonces si en p esta el numero 1000 vamos a apuntar al sector 1000.

Ahora que podemos hacer con un puntero. Podemos modificar o leer el valor al que apunta.
De que forma? USando el operador asterisco *. Si hacemos *p = 7 asignamos 7 al sector 1000. Si hacemos a = *p; estamos asignando en a el valor del sector 1000.

Ahora bien, con punteros podemos hacer algebra. Es decir podemos sumar valores para obtener nuevos punteros. Es decir, entocnes, si a p le sumamos 2 ahora vamos a apuntar al valor 1002. y como usamos el operador * vamos a modificar el sector 1002.
  #3 (permalink)  
Antiguo 02/06/2011, 08:48
 
Fecha de Ingreso: noviembre-2010
Mensajes: 93
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Punteros

muchas gracias!!!! :)
  #4 (permalink)  
Antiguo 02/06/2011, 10:17
 
Fecha de Ingreso: junio-2005
Mensajes: 93
Antigüedad: 19 años, 6 meses
Puntos: 9
Respuesta: Punteros

otra forma de explicar, sin ahondar en temas de punteros. Los puntero pueden ser tratados como arreglos y viceversa. Por ejemplo en tu caso sería.

*(p+2) = 7 es lo mismo que p[7] = 7,

asi *p es igual

*(p+0)=7

y

p[0] = 7

Etiquetas: punteros
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:55.