Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Código Delphi [-]
var
  ivalor : ^Real;
begin 
   ...
  ivalor := @Clase.icampo;

Aquí estas asignando a la variable ivalor la posición de memoria que ocupa la variable icampo.

Código Delphi [-]
var
  ivalor : Real;
begin
   ...    
  ivalor := Clase.icampo;

Aquí sin embargo estas asignando el valor de la variable icampo a la variable ivalor.


Vamos a ver si puedo ponerte un ejemplo sobre punteros:
Código Delphi [-]
var
  i: integer;
  p: ^integer;
begin
  // Aqui asignamos a la variable i el valor 5
  i:= 5;
  // Aqui asignamos a p la direccion de la variable i,
  // para eso utilizamos el operador @
  p:= @i;
  // Ahora vamos a cambiar el valor de i,
  // en este caso el operador ^ inica que queremos
  // acceder a la posicion de memoria a la que apunta p
  p^:= 10;
  // comprobamos que el valor de i a cambiado
  ShowMessage(IntToStr(i));
end;

Espero no haberte liado mas
Responder Con Cita
  #2  
Antiguo 25-11-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con punteros Victor_TlrSoft Varios 4 01-02-2006 16:57:46
Punteros davitcito Varios 2 25-04-2005 22:46:24
Punteros y Variables Flores OOP 7 23-04-2005 22:09:55
Punteros rafadrover OOP 8 18-09-2003 10:09:47


La franja horaria es GMT +2. Ahora son las 00:18:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi