Step 1: Set up the memory picture first.
The line int a = 10 creates a variable a holding the value 10 somewhere in memory, and the pointer is then made to store the address of that memory location, not the value itself.
Step 2: Distinguish the pointer from what it points to.
Printing the pointer on its own would show a memory address, but dereferencing it tells the compiler to go to the address stored in the pointer and fetch the value sitting there.
Step 3: Apply dereferencing to get the printed value.
Since the pointer points at a, dereferencing it retrieves exactly the value stored in a, which is 10, and that is the value that ends up printed to the console.
\[ \boxed{10} \]