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

duda punteros

Estas en el tema de duda punteros en el foro de C/C++ en Foros del Web. hola una pregunta. se supone, que un puntero apunta a una variable d=45; *p=&d; si al puntero le sumo un entero , por ejemplo le ...
  #1 (permalink)  
Antiguo 23/04/2012, 17:37
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 11 meses
Puntos: 5
duda punteros

hola una pregunta. se supone, que un puntero apunta a una variable

d=45;

*p=&d;

si al puntero le sumo un entero , por ejemplo le sumo ,5.
¿que es lo que pasa. se mueve de direccion, la variable , pero no cambia el valor... sigue siendo d 45??

y que es lo que se hace para que se modifique el contenido , osea que hay que hacerle al puntero p para que el valor a cual esta direccionado valga 90...


saludos !
  #2 (permalink)  
Antiguo 23/04/2012, 20:18
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: duda punteros

Hola! esto *p=&d; esta mal, la forma correcta es:
Código C:
Ver original
  1. p=&d; // p apunta a d

Si vos queres cambiar el contenido a donde apunta p tenes que usar el operador "*", ejemplo:
Código C:
Ver original
  1. *p=*p+45; // modifico el contenido a donde apunta p, es decir cambio el valor de d
  2. printf("%d %d\n",d,*p); // en ambos casos se va a imprimir 90

OJO! no es lo mismo hacer *p=*p+45; que hacer p=p+45;

Saludos
  #3 (permalink)  
Antiguo 23/04/2012, 20:48
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 11 meses
Puntos: 5
Respuesta: duda punteros

ok ,
aprendo mas aca... q en la facultad.
  #4 (permalink)  
Antiguo 24/04/2012, 05:15
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: duda punteros

Si al puntero le sumas 5 se mueve 5 espacios. y asi es como funciona la cadena de caracteres. Es un puntero al primer caracter y despues se va corriendo posicion por posicion.
La forma rapida de hacer eso es usar los corchetes: p[5] es equivalente a hacer *(p+5)

Saludos

Etiquetas: punteros, variables
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 22:41.