Obtenir l'adresse d'un pointeur

Mes excuses, je sais qu'il y a un million de questions sur les pointeurs, les tableaux etc. bien que de base que cela est que je n'arrive pas à trouver quelque chose de pointage (ha ha!) pour une réponse.

J'ai un pointeur est initialisé au point pour une partie de la mémoire, je comprends que je peux accéder à cette mémoire similaire à la façon dont je le ferais un tableau:

char *mMem=new char[5000];
cout<<mMem[5]<<endl;

Qui est en réalité:

char *mMem=new char[5000];
cout<<*(mMem+5)<<endl;

Ce que je ne comprends pas bien c'est comment faire pour obtenir l'adresse d'un élément - je suis au courant de cet élément n'est pas tout à fait le mot juste en considérant mMem n'est pas un tableau - que, si ma compréhension est correcte, ne peut pas être trop sûr de bien car il semble que chaque site utilise les mots qu'il veut quand il s'agit de pointeurs et les tableaux. Donc, si j'ai:

char *mMem=new char[5000];
cout<<mMem[5]<<endl;
    or
cout<<*(mMem+5)<<endl;

pourquoi l'adresse de l'opérateur de ne pas fonctionner correctement:

cout<<&mMem[5]<<endl;

Au lieu d'obtenir l'adresse de la 5ème élément, - je obtenir une copie imprimée du bloc de mémoire le contenu de cet élément à partir. Alors, pourquoi l'adresse de l'opérateur ne fonctionne pas comme je m'attendais et comment puis-je obtenir l'adresse d'un élément de la mémoire?

OriginalL'auteur R4D4 | 2011-07-22