Int a defines an integer variable, and int *a defines a pointer variable. This pointer variable will point to the address of an integer, which seems to be the house number of this integer, so that the integer can be operated by this number.
A can store data directly, while *a stores addresses.