解释C语言中联合的指针!
联合是由不同数据类型的多个变量共享的内存位置。
语法
C编程中联合指针的语法如下:
union uniontag{
   datatype member 1;
   datatype member 2;
   ----
   ----
   datatype member n;
};示例
下面的例子展示了结构联合的用法。
union sample{
   int a;
   float b;
   char c;
};联合变量的声明
以下是联合变量的声明。它分为以下三种类型-
类型1
union sample{
   int a;
   float b;
   char c;
}s;类型2
union{
   int a;
   float b;
   char c;
}s;类型3
union sample{
   int a;
   float b;
   char c;
};
union sample s;声明union时,编译器会自动创建最大大小的变量类型来保存union中的变量。
在任何时候都只能引用一个变量。
相同的结构语法用于访问联合成员。
点运算符用于访问成员。
箭头运算符(->)用于使用指针访问成员。
我们有指向联合的指针,并且可以像结构一样使用箭头运算符(->)访问成员。
示例
以下程序显示了C编程中联合指针的用法-
#include输出结果union pointer { int num; char a; }; int main(){ union pointer p1; p1.num = 75; //p2是一个指向联合p1的指针 union pointer* p2 = &p1; //使用指针访问联合成员 printf("%d %c", p2->num, p2->a); return 0; } 
执行上述程序时,会产生以下结果-
75 K
示例2
考虑具有不同输入的相同示例。
#include输出结果union pointer { int num; char a; }; int main(){ union pointer p1; p1.num = 90; //p2是一个指向联合p1的指针 union pointer* p2 = &p1; //使用指针访问联合成员 printf("%d %c", p2->num, p2->a); return 0; } 
执行上述程序时,会产生以下结果-
90 Z
