A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

MC102 - Algoritmos e Programação de Computadores 14ª Aula - Ponteiros Amanda Meincke Melo Instituto de Computação/Unicamp 1º Sem/2005.

Apresentações semelhantes


Apresentação em tema: "MC102 - Algoritmos e Programação de Computadores 14ª Aula - Ponteiros Amanda Meincke Melo Instituto de Computação/Unicamp 1º Sem/2005."— Transcrição da apresentação:

1 MC102 - Algoritmos e Programação de Computadores 14ª Aula - Ponteiros Amanda Meincke Melo Instituto de Computação/Unicamp 1º Sem/2005

2 27/04/20052 Roteiro zComentários yLaboratório 06 yLaboratório 07 zRelembrando mais uma vez... zPonteiros yO que são? yRepresentação na memória yRepresentação na linguagem C yPor quê? yExemplos

3 27/04/20053 Relembrando mais uma vez... zUma variável está associada a uma posição de memória e qualquer referência a ela significa um acesso ao conteúdo de um pedaço de memória cujo tamanho depende de seu tipo Endereço ou Referência Nome Conteúdo

4 27/04/20054 Ponteiros – O que são? zUm ponteiro, ou apontador, é uma variável que contém o endereço de outra variável. Endereço ou Referência Nome Conteúdo O conteúdo é um endereço de memória

5 27/04/20055 Uma representação da memória ‘a’ 0x240ff5f...... letra (0x240ff5f) p (0x240ff58) A variável letra é do tipo char A variável p é um apontador Neste caso, dizemos que p “aponta” para letra, sendo possível ler e alterar o conteúdo de letra via p.

6 27/04/20056 Representação na linguagem C #include int main () { char letra = 'a'; char *p; /* Declaração de um ponteiro: neste caso, informa que p é um ponteiro que deve apontar para uma variável do tipo caracter (seu conteúdo ainda é desconhecido) */ p = &letra; /* Atribuição de um endereço a um ponteiro: neste caso, p recebe o endereço da variável letra, ou seja, p passa a apontar para a variável letra */ printf (“%c\t”, *p); /* Exibe o conteúdo da variável letra */ *p = ‘b’; /* Altera o conteúdo da variável letra */ printf (“%c\n”, letra); return 0; } Declaração: tipo *identificador;

7 27/04/20057 zNo exemplo anterior: ychar *p; xdeclara que p é um apontador para uma variável do tipo char y*p xNa declaração, informa que a variável p é um apontador xNo uso, possibilita acessar a posição de memória (o endereço) da variável que p aponta, ou seja, pode-se ler e alterar o conteúdo da variável que p aponta y&letra xRepresenta o endereço da variável letra

8 27/04/20058 zSe quisermos indicar que um ponteiro não aponta para uma variável, podemos atribuir a ele um “valor nulo”: p = NULL; zEssa informação pode ser útil em expressões condicionais: If (p == NULL) { } else { }

9 27/04/20059 Ponteiros – Por quê? zEventualmente, torna-se necessário que uma função dê acesso ao seu espaço de memória a outra função. Exemplo: scanf (“%c”, &letra); zO espaço de memória utilizado por um programa pode ser reservado (e liberado) dinamicamente, via ponteiros, diferentemente do que temos feito até o momento.

10 27/04/200510 Em outras palavras... 1.Provêem uma forma de comunicação entre funções 2.Podem auxiliar na construção de programas que utilizam memória de forma ponderada, conforme sua necessidade de processamento 3.Ainda... yA implementação de alguns algoritmos computacionais são mais eficientes com o uso de ponteiros

11 27/04/200511 Exemplos z(na lousa) zOutros exemplos estão disponíveis no Ensino Aberto


Carregar ppt "MC102 - Algoritmos e Programação de Computadores 14ª Aula - Ponteiros Amanda Meincke Melo Instituto de Computação/Unicamp 1º Sem/2005."

Apresentações semelhantes


Anúncios Google