O Valor de x ao final do programa será de -2 .
atribui-se 2 a x.
atribui-se ao ponteiro p do tipo inteiro o o valor contido no endereço de x;
atribui-se a y o valor de p, e apos isso atribuise o valor 5 a y.
A p que tinha o valor 2 é incrementado em um passando a ser 3.
A p que tinha o valor 3 é atribuido o seu proprio valor menos o valor de y, ou seja 3-5=-2;
Espero ter ajudado.
Para analisarmos esse tipo de problema, é necessário que monitoremos as variáveis linha a linha.
No início do programa, x já recebe o valor 2 e depois seu endereço de memória é atribuído a um ponteiro.
x = 2;
p = &x;
Após isso, y recebe inicialmente recebe o conteúdo do ponteiro p e depois é igualado a 5.
y = *p;
y = 5;
Já nessa linha há um acréscimo no conteúdo do endereço que p aponta, ou seja, como o endereço se refere a variável x, ela será igual a 3 a partir dessa linha.
(*p)++;
Já no ultimo calculo do programa ele salva x o valor de x anterior menos a variável y, ou seja, 3 - 5 e salva no endereço de x.
(*p) = (*p) - y;
return(0);
}
Assim, como x é o resultado de 3 -5, o valor final de x será -2.
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar