解释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