解释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 <stdio.h>

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 <stdio.h>

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

以上是 解释C语言中联合的指针 的全部内容, 来源链接: utcz.com/z/345827.html

回到顶部