[delphi-br] Ponteiros, affe

2005-03-03 Por tôpico AXL_ERIC


Alguem pode passar um exemplo bem simples de o que é um ponteiro e do porquê 
utiliza-lo?
não estou compreendendo muito bem, como assim guarda um endereço de onde está a 
informação?

Obrigado.

Eric Wesley (AXL)





-- 
< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





Re: [delphi-br] Ponteiros, affe

2005-03-03 Por tôpico Clayton Bonelli

Olha o codigo abaixo:

procedure TForm1.Button1Click(Sender: TObject);
var
  x : ^Integer;
begin
  new( x );
  x^ := 10;
  dispose(x);
end;

fazendo um esquema a memoria poderia ficar assim:

x   $B87D00
[$B87D00] >[10]

O desenho acima significa que dentro da variavel "X" existe o numero 
$B87D00. Este numero eh um endereco de memoria, onde foi colocado o valor 
10. A variavel X, eh chamada de ponteiro porque o seu conteudo nao eh a 
informacao (o numero), mas o endereco de memoria ($B87D00) onde a informacao 
(10) esta localizada na RAM.




- Original Message - 
From: "AXL_ERIC" <[EMAIL PROTECTED]>
To: 
Sent: Thursday, March 03, 2005 10:44 AM
Subject: [delphi-br] Ponteiros, affe


>
>
> Alguem pode passar um exemplo bem simples de o que é um ponteiro e do 
> porquê utiliza-lo?
> não estou compreendendo muito bem, como assim guarda um endereço de onde 
> está a informação?
>
> Obrigado.
>
> Eric Wesley (AXL)
>
>
>
>
>
> -- 
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
> Para ver as mensagens antigas, acesse:
> http://br.groups.yahoo.com/group/delphi-br/messages
>
> Para falar com o moderador, envie um e-mail para:
> [EMAIL PROTECTED] ou [EMAIL PROTECTED]
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
>
>
>
>
> -- 
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.300 / Virus Database: 266.6.0 - Release Date: 2/3/2005
>
> 



-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 266.6.0 - Release Date: 2/3/2005




-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





Re: [delphi-br] Ponteiros, affe

2005-03-03 Por tôpico Demian Lessa

type
   Meu_Ponteiro_Inteiro: ^Integer;

var
   i: Integer;
   pi: Meu_Ponteiro_Inteiro;
begin
   i := 500;  // a variável "i" armazena o valor 500 na memória
   pi := @i;  // coloque em "pi" o endereço de memória onde está "i"
   ShowMessage(IntToStr(pi^));  // exibe o valor inteiro 500
   i := 7500;  // a variável "i" armazena o valor 7500 na memória
   ShowMessage(IntToStr(pi^));  // exibe o valor inteiro 7500;
// o valor de "i" alterou mas a
// região da memória onde seu valor
// é armazenado continua a mesma
end.

Quando você declara "i" como inteiro, você diz ao compilador para 
reservar na memória uma região de tamanho adequado (tamanho de um 
inteiro) onde o valor de "i" poderá ser lido e armazenado. Esse espaço 
de memória reservado é o endereço de i, dado por "@i" em Pascal.

Ponteiros são variáveis cujos valores são endereços de memória (ao invés 
de um boolean, string ou integer). Quando atrabuí a "pi" o endereço de 
"i", quis dizer que o valor de "pi", a partir daquele momento, poderia 
ser também utilizado para acessar o conteúdo da posição de memória que 
corresponde ao valor armazenado em "i". Veja que, apesar de alterar o 
valor de "i", o endereço onde o valor de "i" é armazenado continua o 
mesmo. Usando o ponteiro "pi", podemos vigiar uma região de memória e 
verificar a qualquer tempo qual seu (novo) valor.

Esse é o básico dos ponteiros.

Cordialmente,

Demian Lessa
Salvador - Brasil

AXL_ERIC wrote:
> 
> Alguem pode passar um exemplo bem simples de o que é um ponteiro e do porquê 
> utiliza-lo?
> não estou compreendendo muito bem, como assim guarda um endereço de onde está 
> a informação?
> 
> Obrigado.
> 
> Eric Wesley (AXL)


-- 
< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html