Maison > Article > développement back-end > Expliquer les pointeurs d'union en langage C
Une union est un emplacement mémoire partagé par plusieurs variables de différents types de données.
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; };
L'exemple suivant montre l'utilisation de l'union des structures.
union sample{ int a; float b; char c; };
Ce qui suit est la déclaration des variables conjointes. Il a trois types comme suit −
union sample{ int a; float b; char c; }s;
union{ int a; float b; char c; }s;
union sample{ int a; float b; char c; }; union sample s;
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.
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; }
Lorsque le programme ci-dessus est exécuté, il produit le résultat suivant −
75 K
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; }
Lorsque le programme ci-dessus est exécuté, il produit les résultats suivants −
90 Z
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!