Use o botão abaixo para reportar erros ou dar sugestões.

Computação Científica - Um Livro Colaborativo

5.3 Incremento e decremento de ponteiros


Um ponteiro avança/recua o tamanho do tipo de variável para cada unidade de incremento/decremento. A diferença entre dois ponteiros diz a distância entre bytes entre eles. A comparação entre ponteiros diz quem está mais a direita.

Exemplo 5.3.1. Escreva um código que incremente/decremente ponteiros para vetores de double e imprime os valores, endereços, diferenças, etc.

#include <stdio.h>  
#include <math.h>  
 
main (void)  
{  
  double v[3]={1.1,2.2,3.3}, *pv=v,*pv2;  
  printf("O endereço do vetor v é %p\n",v);//hexadecimal  
  printf("O endereço do vetor v é %ld\n",(long int) v);//decimal  
  printf("O ponteiro *pv aponta para o endereço %p\n",pv);//hexadecimal  
  printf("O ponteiro *pv aponta para o endereço %ld\n",(long int) pv);//decimal  
  printf("O endereço de *pv é %ld\n",(long int) &pv);//decimal  
  printf("O valor apontado por *pv é %f\n",*pv);  
  pv++;  
  printf("O endereço de *pv é %ld\n",(long int) &pv);//decimal  
  printf("O ponteiro *pv aponta para o endereço %ld\n",(long int) pv);//decimal  
  printf("O valor apontado por *pv é %f\n",*pv);  
  printf("O ponteiro caminhou %ld bytes\n",sizeof(double));  
  pv2=pv+2;  
  printf("O valor apontado por *pv2 é %f\n",*pv2);  
  printf("A diferença entre pv2 e pv é %ld double\n",pv2-pv);  
  pv2--;  
  printf("O valor apontado por *pv2 é %f\n",*pv2);  
  if (pv2<pv) printf("pv2 está à esquerda de pv\n");  
  else printf("pv2 está à direita de pv\n");  
}

Creative Commons License Este texto é disponibilizado nos termos da licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC-BY-SA 3.0). Página gerada em 19/8/2020 às 17:33:16.

Informe erros ou edite você mesmo!