Ver Mensaje Individual
  #6  
Antiguo 25-11-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
A ver si lo termino de complicar o simplificar:
Primero:
Todas las variables se guardan en una dirección de RAM (no todas... pero bueno, aceptamos barco) y la estructura de ram podría asemejarse a esto:
Código:
DIRECCION RAM	NOMBRE VARIABLE		VALOR DE LA MEMORIA	
 200		  i			5
 300		  p			200
Cuando dice i:=5, la variable i se guarda en la dirección 200 de la ram, se accede a esa dirección y se cambia el contenido por un 5.

Cuando dice p := @i se mira donde está la variable "p" que es la dirección 300. Ahora en el valor de la memoria, se debe escribir "la dirección de "i" (por aquello del operador @), y se guarda el 200.

Cuando se accede con p^:= 10 el compilador busca la variable "p", que está en la dirección 300, y a partir de ahí, (como está el operador ^) se trata el contenido de la memoria como una dirección de memoria, o sea, se mira el valor de la memoria (el 200) y como está el operador ^, ahora se busca en la dirección 200 de la memoria, se capta el valor que haya, (el 5) y se sustituye por el 10. Esto si no recuerdo mal se llamaba "modo de direccionamiento indirecto"

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 25-11-2006 a las 18:15:52.
Responder Con Cita