Aluno

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (281 palavras )
  • Download(s) : 0
  • Publicado : 5 de dezembro de 2012
Ler documento completo
Amostra do texto
Exercício: Página c620.html
Enunciado:
-Explique a diferença entre
 p++;       (*p)++;        *(p++);
-O que quer dizer *(p+10);?
-Explique o que você entendeuda comparação entre ponteiros.
Solução:
- p++: incrementa o ponteiro, ou seja o endereço. Após esta instrução, o ponteiro p passará a apontar para a posição dememória imediatamente superior. Se em um vetor, o ponteiro passará a apontar a próxima posição do vetor.
- (*p)++: Incrementa o conteúdo apontado por p, ou seja, o valorarmazenado na variável para qual p está apontando.
- *(p++): Incrementa p (como em p++) e acessa o valor encontrado na nova posição. Se em um vetor, esta expressãoacessa o valor da posição imediatamente superior a armazenada em p antes do incremento.
- *(p+10) Acessa o valor encontrado 10 posições a frente de p. Neste caso, oapontador não é incrementado. Se em um vetor, irá acessar a décima posição após a que está sendo apontada.
- Dois ponteiros, como outras variaveis, podem sercomparados. Podemos verificar por exemplo se dois ponteiros apontam para a mesma posição de memória verificando se    p1 == p2 ou se p1 != p2
Podemos comparar se um ponteiroe 'menor' ou 'maior' que outro, ou melhor, se aponta para uma posição superior a de outro. Veja o trecho de programa como exemplo:
p1 = &vet[0];  /* vet e umvetor de 100 posicoes; p1 aponta para
                  o inicio de vet */
p2 = p1+50;    /* p2 aponta para o meio de vet */
p3 = p1+99;   /* p3 aponta para o fim devet */
for(p=p1; p<=p3; p++)
  if(p>p2)
    printf("\n\n Ultrapassamos o meio do vetor!");

http://www.cefetsp.br/edu/garabed/c/livro-html/gab4.html
tracking img