Both of the following are valid pointer declarations in C/C++:
int *x;
int* x;
The former seems to be preferred by seasoned C/C++ programmers. I personally find the latter to be easier to understand - it illustrates that pointer-ness is a factor of the variable's type, not its name. Furthermore, this unifies stylistically the declaration of pointers and functions returning pointers:
int* foo(); //foo returns an int*
int* x; //x is an int*
int *foo(); //generally unused (in my experience)
int *x; //feels wrong in this context
int *x
seems counter-intuitive despite being the norm, so I feel I must be overlooking something.
What motivates syntactic preference regarding pointer declaration in C/C++?