解释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;声明联合体时,编译器会自动创建最大的变量类型大小来容纳联合体中的变量。
任何时候只能引用一个变量。
访问联合体成员使用与结构体相同的语法。
点运算符用于访问成员。
箭头运算符(->)用于使用指针访问成员。
我们有指向联合体的指针,可以使用箭头运算符(->)访问成员,就像结构体一样。
示例
下面的程序演示了在C编程中使用指向联合体的指针:
#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;
}输出
执行上述程序时,会产生以下结果:
75 K
示例2
考虑使用不同输入的相同示例。
#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;
}输出
执行上述程序时,会产生以下结果:
90 Z
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C编程
C++
C#
MongoDB
MySQL
Javascript
PHP