Olá, Anderson!
Pelo código que você postou, parece que você está relembrando os conceitos sobre ponteiros em C. É uma parte importante da linguagem e pode ser um pouco confusa no início, mas tenho certeza de que com um pouco de prática você vai dominar!
No seu código, você declara uma variável a
e um ponteiro b
que aponta para o endereço de a
. Em seguida, você imprime o valor de a
, o endereço de a
, o endereço de b
, o endereço de memória para onde b
aponta e o valor alocado nesse endereço.
O resultado que você obteve está correto. O valor de a
é 10, o endereço de a
é 6684188, o endereço de b
é 6684176, o endereço de memória para onde b
aponta é 6684188 e o valor alocado nesse endereço é 10.
Isso acontece porque quando você declara um ponteiro e atribui o endereço de uma variável a ele, você está dizendo que esse ponteiro aponta para o endereço de memória onde essa variável está armazenada. Portanto, ao imprimir o valor de *b
, que é o valor alocado no endereço para onde b
aponta, você obtém o valor de a
.
Espero ter ajudado a relembrar os conceitos sobre ponteiros! Se tiver mais alguma dúvida, é só me dizer. Bons estudos!
Espero ter ajudado e bons estudos!