int main()
{
int x=0, *p;
clrscr();
p=&x; /* inicializa a variável ponteiro com endereço de x */
*p=*p + (*p)++; /*Faz o incremento de *p */
printf ("O incremento de *p e: %d",*p);
return (0);
}
O programa acima, tem como objetivo, incrementar a variável ‘p’. Ok, ele incrementa, e tem como resultado 1.
1 ) O que eu queria entender, é porque tenho que escrever (*p)++; e ao invés de *(p)++; ? se eu fizer isso dá errado. Entretanto, se eu fizer isso com matrizes, da certo.
Ex.
*(matriz + 2);
2) Sabendo, queendereço de memória só permite inteiros sem sinal, posso fazer a operação acima com outros tipos de dados ?
Pergunta
Castro
:(
O programa acima, tem como objetivo, incrementar a variável ‘p’. Ok, ele incrementa, e tem como resultado 1.
1 ) O que eu queria entender, é porque tenho que escrever (*p)++; e ao invés de *(p)++; ? se eu fizer isso dá errado. Entretanto, se eu fizer isso com matrizes, da certo.
Ex.
*(matriz + 2);
2) Sabendo, queendereço de memória só permite inteiros sem sinal, posso fazer a operação acima com outros tipos de dados ?
Obrigado,.
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.