Maison > développement back-end > C++ > Pourquoi le pointeur « this » en C n'est-il pas une référence ?

Pourquoi le pointeur « this » en C n'est-il pas une référence ?

Patricia Arquette
Libérer: 2024-11-24 16:50:18
original
769 Les gens l'ont consulté

Why is the `this` Pointer in C   Not a Reference?

Pourquoi « ceci » est-il un pointeur et non une référence ?

Les programmeurs sont souvent confrontés à la confusion selon laquelle « ceci » est désigné comme un pointeur mais pas une référence en C . Cela soulève des questions sur le raisonnement derrière ce choix de conception.

Contexte historique

Lorsque le C en était à ses premiers stades de développement, les références n'existaient pas dans le langage. Les pointeurs étaient le seul mécanisme permettant d’accéder indirectement à la mémoire. Les références ont été introduites plus tard, permettant aux opérateurs d'être surchargés et de fonctionner de manière transparente.

Raison d'être un pointeur

Bien que les références offrent plusieurs avantages par rapport aux pointeurs, tels qu'une validité garantie et une gestion plus sûre de la mémoire, « ceci » est resté un indicateur pour des raisons historiques. C a évolué progressivement, en intégrant les commentaires de la communauté des utilisateurs. La valeur de la préservation de la compatibilité ascendante pour le code existant dépassait les avantages potentiels de la conversion de « ceci » en référence.

Arguments supplémentaires pour la référence

Malgré la justification historique, certains les arguments soutiennent que « ceci » est une référence :

  • Élément 1 du C plus efficace : Les références sont recommandées lorsqu'un objet valide est assuré, ce qui est généralement le cas pour « ceci ».
  • Sécurité : Les références empêchent la corruption de la mémoire due à des pointeurs parasites, améliorant ainsi la sécurité.
  • Syntaxe : Les références utilisent l'opérateur point (.) plus concis et plus esthétique pour accéder aux propriétés, par rapport aux opérateurs de pointeur (-> ou *).

Conclusion

Bien que les références offrent des avantages dans certains scénarios, « ceci » reste un pointeur dans C en raison de considérations historiques. L'importance de la compatibilité ascendante et l'évolution progressive du langage ont façonné cette décision, qui a persisté malgré les avantages potentiels que les références pourraient apporter.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal