Différence entre const. pointeur et référence?
Quelle est la différence entre un pointeur constant et une référence?
Pointeur Constant comme son nom l'indique ne peuvent pas être liés de nouveau. Même est le cas avec la référence.
Je me demande dans quel genre de scénarios serait un être privilégié par rapport à l'autre. Combien différente est leur C++ standard et leur mise en œuvre?
acclamations
Vous devez vous connecter pour publier un commentaire.
Il existe 3 types de pointeurs const:
Méthode n ° 2 ci-dessus est plus semblable à une référence.
Il existe des différences importantes entre les références et toutes les 3 types de const pointeurs ci-dessus:
Const pointeurs NULL.
Une référence à ne pas disposer de sa propre adresse alors qu'un pointeur n'.
L'adresse de référence est l'objet réel de l'adresse.
Un pointeur a sa propre adresse, et il a comme valeur l'adresse de la valeur qu'elle renvoie.
Voir ma réponse ici pour beaucoup plus de différences entre les références et les pointeurs.
Je suppose que tu veux dire const valeur du pointeur (par exemple int* const ptr), pas un pointeur const (par exemple, const int* ptr).
int& intRef(intArray[2]);
. Const pointeur pointant vers un tableau de points à l'adresse d'un élément de tableau. Je ne suis pas sûr de la matrice de partie de votre deuxième balle signifie beaucoup. Peut-être vous dire que vous pouvez utiliser le[]
opérateur sur un pointeur.Lorsque vous devez utiliser chaque:
référence:
L'utilisation de ces par défaut. Il est très fréquent que les gens de déréférencement de pointeurs NULL. Vous éliminez le risque avec une référence.
const pointeur:
Quand vous voulez une référence, mais ne peut pas en faire un. Par exemple, vous écrivez un pilote, et que vous souhaitez un pointeur vers le début d'une carte mémoire. Une référence n'est pas faire comme beaucoup de sens dans ce cas. Aussi, si vous avez besoin d'un ensemble de choses, une référence ne fonctionne pas (bien qu'un tableau de simples classes en référence avec les membres).
Dans l'exemple suivant, un pointeur const vérifie une erreur qu'une référence ne peut pas vérifier:
Presque tous les points ont été couverts par d'autres réponses, à l'exception de cette importante :
Il est possible de faire de l'arithmétique sur les pointeurs, mais pas sur la référence.
E. g.
Quelques différences:
Const pointeur peut pointer vers NULL.
Const point peut pointer vers un tableau d'objets.
Un pointeur const peut être liés de nouveau en rejetant la constness.