Maison > développement back-end > C++ > Expliquer les pointeurs d'union en langage C

Expliquer les pointeurs d'union en langage C

王林
Libérer: 2023-09-12 13:45:04
avant
703 Les gens l'ont consulté

Expliquer les pointeurs dunion en langage C

Une union est un emplacement mémoire partagé par plusieurs variables de différents types de données.

Syntaxe

La syntaxe du pointeur vers l'union dans la programmation C est la suivante -

union uniontag{
   datatype member 1;
   datatype member 2;
   ----
   ----
   datatype member n;
};
Copier après la connexion

Exemple

L'exemple suivant montre l'utilisation de l'union des structures.

union sample{
   int a;
   float b;
   char c;
};
Copier après la connexion

Déclaration des variables conjointes

Ce qui suit est la déclaration des variables conjointes. Il a trois types comme suit −

Type 1

union sample{
   int a;
   float b;
   char c;
}s;
Copier après la connexion

Type 2

est traduit par :

Type 2

union{
   int a;
   float b;
   char c;
}s;
Copier après la connexion

Type 3

est traduit par :

Type 3

union sample{
   int a;
   float b;
   char c;
};
union sample s;
Copier après la connexion
  • Lorsqu'une union est déclarée, compilez le Le compilateur crée automatiquement des types de variables de la plus grande taille pour s'adapter aux variables de l'union.

  • Une seule variable peut être référencée à tout moment.

  • Utilisez la même syntaxe structurelle pour accéder aux membres du syndicat.

  • L'opérateur point est utilisé pour accéder aux membres.

  • L'opérateur flèche (->) est utilisé pour accéder aux membres à l'aide de pointeurs.

Nous pouvons utiliser des pointeurs vers des syndicats et utiliser l'opérateur fléché (->) pour accéder aux membres, tout comme une structure.

Exemple

Le programme suivant montre l'utilisation du pointeur vers l'union dans la programmation C -

Live Demo

#include <stdio.h>
union pointer {
   int num;
   char a;
};
int main(){
   union pointer p1;
   p1.num = 75;
   // p2 is a pointer to union p1
   union pointer* p2 = &p1;
   // Accessing union members using pointer
   printf("%d %c", p2->num, p2->a);
   return 0;
}
Copier après la connexion

Output

Lorsque le programme ci-dessus est exécuté, il produit le résultat suivant −

75 K
Copier après la connexion

Exemple 2

Considérez le même exemple avec des entrées différentes.

Démonstration en direct

#include <stdio.h>
union pointer {
   int num;
   char a;
};
int main(){
   union pointer p1;
   p1.num = 90;
   // p2 is a pointer to union p1
   union pointer* p2 = &p1;
   // Accessing union members using pointer
   printf("%d %c", p2->num, p2->a);
   return 0;
}
Copier après la connexion

Sortie

Lorsque le programme ci-dessus est exécuté, il produit les résultats suivants −

90 Z
Copier après la connexion

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal