seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^

Você não está conectado. Conecte-se ou registre-se

 » Programação Desktop » Pascal / Delphi » [tutorial] ponteiro em pascal

[tutorial] ponteiro em pascal

Ir em baixo  Mensagem [Página 1 de 1]

1 [tutorial] ponteiro em pascal em Qua Maio 30, 2012 1:19 pm

Kodo no Kami

avatar
master
master
bom galera ja fiz um tutorial parecido com esse na linguagem c agora vou falar dos ponteiros da linguagem pascal, ponteiros sao variaveis q armazena endereço de memoria de outra variavel, assim voce pode ler o modificar o conteudo daquela variavel apenas com ponteiro, a vantagem de usar ponteiro e q quando vc passa uma variavel como argumento em uma funçao ela vai ta copiando o conteudo mais quando se usa ponteiro vc vai ta modificando a variavel e nao o conteudo recebido para depois ser atribuido a mesma, existe o proprio tipo de variavel ponteiro é o tipo pointer para declar basta fazer assim

Código:
var ponteiro : pointer;

esse tipo de variavel ele armazena o endereço de outra variavel, para armazer o endereço da variavel basta atribuir a variavel com @ antes do nome ou a funçao addr(), veja

Código:
var ponteiro : pointer;
    fts : integer;

begin
  fts := 315;
  ponteiro := @fts;
end.

o unico problema q quando vc declara um ponteiro com o tipo pointer ele apenas cria uma variavel q vai armazenar apenas o endereço da outra se poder modificar, isso acontece pq essa variavel e sem tipo e quando vc tenta ler da erro, para evitar isso agente vai criar uma variavel de um determinado tipo soq ela vai ser um ponteiro, para fazer isso basta criar uma variavel normal com ^ antes do tipo indicando q ela e um ponteiro

Código:
var ponteiro : ^integer;
    fts : integer;

begin
  fts := 315;
  ponteiro := @fts;
end.

para ler o conteudo da variavel basta adicionar ^ depois do nome dela

Código:
var ponteiro : ^integer;
    fts : integer;

begin
  fts := 315;
  ponteiro := @fts;
  write(ponteiro^);
end.

so lembrando q ta exibindo o conteudo diretamente da variavel fts o ponteiro so ta apontando para o endereço da variavel fts, vamos analisar de outro angulo vamos criar duas variavel normal

Código:
var ponteiro : integer;
    fts : integer;

begin
  fts := 315;
  ponteiro := fts;
  writeln(fts);
  writeln(ponteiro);
end.

se por acaso agente modificar alguns dos valores acima tanto da variavel fts quanto da variavel ponteiro ele nao vai afetar a outra pq a variavel ponteiro copio o conteudo da variavel fts mais depois disso nao afeta em nada veja

Código:
var ponteiro : integer;
    fts : integer;

begin
  fts := 315;
  ponteiro := fts;
  fts := 100;
  writeln(fts);
  writeln(ponteiro);
end.

ja o ponteiro e diferente se o conteudo da variavel mudar o do ponteiro muda tambem

Código:
var ponteiro : ^integer;
    fts : integer;

begin
  fts := 315;
  ponteiro := @fts;
  fts := 100;
  writeln(fts);
  writeln(ponteiro^);
end.

para mudar o conteudo atravez do ponteiro basta colocar ^ no final do nome do ponteiro assim

Código:
var ponteiro : ^integer;
    fts : integer;

begin
  fts := 315;
  ponteiro := @fts;
  ponteiro^ := 100;
  write(fts);
end.

bom galera espero q esse tutorial ajude vcs logo logo estarei fazendo outros ^^

by hacker fts315


_________________ASSINATURA_________________
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]

Contato:
Spoiler:

Contato:
Facebook: [Você precisa estar registrado e conectado para ver este link.]
Skype: hackerfts315
http://endoffile.umforum.net

Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum