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!