CURSO DE C

 

Ponteiros para Ponteiros

Um ponteiro para um ponteiro é como se você anotasse o endereço de um papel que tem o endereço da casa do seu amigo. Podemos declarar um ponteiro para um ponteiro com a seguinte notação:

 tipo_da_variável **nome_da_variável;

 Algumas considerações: **nome_da_variável é o conteúdo final da variável apontada; *nome_da_variável é o conteúdo do ponteiro intermediário.

 No C podemos declarar ponteiros para ponteiros para ponteiros, ou então, ponteiros para ponteiros para ponteiros para ponteiros (UFA!) e assim por diante. Para fazer isto (não me pergunte a utilidade disto!) basta aumentar o número de asteriscos na declaracão. A lógica é a mesma.

Para acessar o valor desejado apontado por um ponteiro para ponteiro, o operador asterisco deve ser aplicado duas vezes, como mostrado no exemplo abaixo:

 

#include <stdio.h>
int main()
{
    float fpi = 3.1415, *pf, **ppf;
    pf = &fpi;                 /* pf armazena o endereco de fpi */
    ppf = &pf;                 /* ppf armazena o endereco de pf */
    printf("%f", **ppf);      /* Imprime o valor de fpi */
    printf("%f", *pf);         /* Tambem imprime o valor de fpi */
    return(0);
}

 


AUTO AVALIAÇÃO

Veja como você está.

Verifique o programa abaixo. Encontre o seu erro e corrija-o para que escreva o numero 10 na tela.

#include <stdio.h>
int main()
{
    int x, *p, **q;
    p = &x;
    q = &p;
    x = 10;
    printf("\n%d\n", &q);
    return(0);
}

 


  Página Anterior  Índice da Aula  Próxima Página


Curso de C do CPDEE/UFMG - 1996 - 1999