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
644 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!

source:tutorialspoint.com
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