Ponteiros

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (475 palavras )
  • Download(s) : 0
  • Publicado : 9 de abril de 2013
Ler documento completo
Amostra do texto
Ponteiros
Um ponteiro (= apontador = pointer) é um tipo especial de variável que armazena endereços.  Um ponteiro pode ter o valor especial que não é o endereço de lugar algum. NULL
A constante NULL está definida no arquivo-interface stdlib e seu valor é 0 na maioria dos computadores. 
Se um ponteiro p armazena o endereço de uma variável i, podemos dizer "p apontapara i" ou "p é o endereço de i"  (querendo dizer "o ponteiro p aponta para i" no primeiro caso e "o valor de p é o endereço de i" no segundo).  Se um ponteiro p tem valor diferente de NULL então é o valordo objeto apontado por p. 
*p
(Não confunda esse uso de "*" com o operador de multiplicação!)  Por exemplo, se i é uma variável e p é igual a &i então dizer "*p" é o mesmoque dizer "i".

               |
Figura esquerda:  um ponteiro p, armazenado no endereço 90001, contém o endereço de um inteiro.  Figura direita:  representação esquemática da situação.
|
Hávários tipos de ponteiros: ponteiros para caracteres, ponteiros para inteiros, ponteiros para ponteiros para inteiros, ponteiros para registros etc.  O computador faz questão de saber de que tipo deponteiro você está falando. Para declarar um ponteiro p para um inteiro, diga
int *p;
Para declarar um ponteiro p para um registro cel, diga
struct cel *p;
Umponteiro r para um ponteiro que apontará um inteiro é declarado assim:
int **r;

Exemplos
Suponha que a, b e c são variáveis inteiras. Eis um jeito bobo de fazer  "c = a+b":int *p; /* p é um ponteiro para um inteiro */
int *q;
p = &a; /* o valor de p é o endereço de a */
q = &b; /* q aponta para b */
c = *p + *q;
Outro exemplo bobo:int *p;
int **r; /* r é um ponteiro para um ponteiro para um inteiro */
p = &a; /* p aponta para a */
r = &p; /* r aponta para p e *r aponta para a */
c = **r + b;...
tracking img