Maison >développement back-end >C++ >Comment comparer les pointeurs pour l'égalité en C ?

Comment comparer les pointeurs pour l'égalité en C ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-19 19:40:03309parcourir

How Do I Compare Pointers for Equality in C  ?

Détermination de l'égalité des objets entre les pointeurs

En C , la comparaison de deux pointeurs à l'aide de l'opérateur d'égalité (==) dépend de leurs objets respectifs .

Pointeurs vers des objets

Pour les pointeurs (un et b) pointant vers des objets du même type, l'opération d'égalité (a == b) renvoie vrai dans les cas suivants :

  • Les deux pointeurs sont nuls
  • Les deux pointeurs pointent vers le même objet en mémoire
  • Les deux pointeurs représentent la même adresse

Pointeurs vers Fonctions

Si les pointeurs pointent vers des fonctions du même type, la comparaison renvoie également vrai s'ils pointent vers la même fonction.

Pointeurs vers des éléments du tableau

Lorsque les pointeurs pointent vers des éléments dans un tableau, la comparaison renvoie vrai s'ils font référence au même élément ou se situent après le dernier élément de celui-ci. array.

Comparaisons non spécifiées

Dans certains scénarios, le comportement de l'opérateur d'égalité pour les pointeurs n'est pas spécifié. Cela inclut :

  • Comparaison des pointeurs vers les membres d'objets de différents niveaux d'accès
  • Comparaison des pointeurs vers les données membres non statiques des objets union
  • Comparaison des pointeurs vers variables non locales dans différentes fonctions

Standard Library's Extension

La bibliothèque standard C fournit l'extension std::less<> template, qui offre un classement global pour tout type de pointeur, quel que soit le comportement de comparaison défini par les opérateurs intégrés. Cela permet des comparaisons cohérentes des pointeurs vides.

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!

Déclaration:
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