Non. Il ne s'agit pas du tout de la même chose.
L'équivalent de char *& est char **.
Ceci dit, on ne peut pas faire passer un tableau pour l'adresse d'un pointeur pour la raison qu'un tableau est qu'une zone mémoire accessibles via un index.
tab == &tab[0];
Ce n'est pas un pointeur en tant que tel.
Je ne vois pas trop comment expliquer alors pour faire simple, je vais essayer de vulgariser un peu:
Un pointeur est une variable stockant l'adresse d'une zone mémoire.
Un tableau est une zone mémoire.
Quand une fonction demande un char ** par exemple, c'est pour, généralement, modifier l'adresse où pointe un pointeur.
Mais un tableau est déjà une zone mémoire. Impossible de modifier son emplacement.
Je ne sais pas si c'était clair. Comme je l'avais déjà dis, je suis assez nul pour expliquer ce genre de chose.
C++ (@++)