Yes. These do the same thing.
char x = 'A';
char y = 'B';
char z = 'C';
void setup() {
Serial.begin(9600);
char* p = &x;
char** pp = &p;
Serial.println(*p);
foo(p); // Use reference to pointer
Serial.println(*p);
bar(pp); // Use pointer to pointer
Serial.println(*p);
}
void loop() {
}
void foo(char*& p) {
p = &y;
}
void bar(char** pp) {
*pp = &z;
}