Question: what is the difference between int* a and int *a?
Answer: There is no difference. You could type it as int * i if you wanted; they all mean the same thing: "i is a pointer to an int." It's the same thing. Some developers prefer the int* i notation because this way the type of i is clearly "pointer to an int" whereas int *i seems less readable.