Réponse
Cela vient de "C" ( "c pur", "c brut", peu importe ).
Quand une variable pointeur est déjà déclarée, elle est utilisée de cette façon :
...
*p = &x;
*q = SomePointerFunc();
....
J'ai lu que les inventeurs originaux de "C" voulaient que les programmeurs déclarent les variables pointeurs avec la même syntaxe qu'ils sont utilisés, avec l'étoile avant l'identifiant de variable :
...
int *p;
int *q;
...
Il en va de même pour les tableaux :
...
x[5] = 'a';
y[77] = SomeItemFunc();
...
...
char x[5];
int y[100];
...
Certains enseignants que j'ai eus insistent pour déclarer les types pour les variables et les fonctions de cette manière (l'étoile proche de l'identifiant) :
...
int *p;
int *q;
...
Au lieu de cela (l'étoile à côté de l'identifiant du type) :
...
int* p;
int* q;
...
Extra
En Java et dans d'autres langages, comme C#, la déclaration des tableaux ou pointeurs est à côté du type, laissant l'identifiant de variable ou de fonction seul, comme dans ce pseudocode :
*int p;
*int q;
char[5] x;
int[100] y;
Je préfère cette technique.
Santé.