Un pointeur sachant pointer qui ne pointe pas !

Bon, un petit exemple vaut mieux qu'un long discours :

int var = 30; //La valeur de var est 30
int *ptr = &var; //ptr est un pointeur de var
int numb = *ptr; //numb prend la valeur de la mémoire pointée par ptr, c'est grave à l'étoile
int *autrePtr = ptr; //une simple copie de l'adresse du pointeur dans un autre pointeur

donc

Serial.print(String(*PTR)); // Afficher le contenu de PTR ... Ben NON !

Ici on affiche la valeur pointée par PTR et non l'adresse en mémoire, pour afficher l'adresse il faudrait écrire PTR ou bien &X
Par contre je ne pense pas que tu puisse afficher ça avec Serial.print(), essais plutot cela :

sprintf("%p", &X); //%p permet d'afficher l'adresse en hexa

N'oublie pas une chose, par convention en C++ le nom des variables s'écrit en commençant par une minuscule et le nom des classes par une majuscule, ce n'est pas grand chose mais c'est de bonnes habitudes à prendre pour la suite !