![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
El error me da en la función obviamente , si quito el ^ , pero el caso es por que .
Os voy a poner otro ejemplo . Tengo este código :
Mi pregunta , cual es la diferencia con este otro código : Saludos |
|
#2
|
||||
|
||||
Aquí estas asignando a la variable ivalor la posición de memoria que ocupa la variable 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:
Espero no haberte liado mas |
|
#3
|
||||
|
||||
|
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 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. |
|
#4
|
||||
|
||||
|
Cita:
// Saludos |
|
#5
|
||||
|
||||
|
Yo por el contrario diría que en Delphi prácticamente no hay necesidad de usar apuntadores. Cierto que si debemos trabajar con funciones de la API, los necesitaremos y nunca está de más conocerlos y saber usarlos. Pero una gran parte de los casos, no verás apuntadores en tus aplicaciones, a menos, claro, que intencionalmente quieras usarlos
![]() // Saludos |
|
#6
|
||||
|
||||
|
Cita:
Tienes razón, si no quieres no tienes porque usar un solo puntero en una aplicación de Delphi. De hecho estaba intentando buscar un ejemplo para poner en mi mensaje anterior, y no encontré nada que se pudiera hacer con punteros y no se pudiera hacer con otro de los recursos de que dispone Delphi (arrays dinámicos, streams, strings, etc ...). Pero el caso, es que internamente lo único que hacen esas herramientas es manejar los punteros por nosotros, y a veces, lo que apetece es bajar un poco y manejar las cosas uno mismo. Aunque por lo visto a mi me suele apetecer mas de lo normal ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|