结构体为每个成员保留单独的内存段,union为其最大成员保留单个内存空间。使用关键字union创建联合体。以下代码为电话簿创建联合体定义。
编程学习网为您整理以下代码实例,主要实现:使用union在成员之间共享内存,希望可以帮到各位朋友。
结构体为每个成员保留单独的内存段,union
为其最大成员保留单个内存空间。使用关键字union
创建联合体。
以下代码为电话簿创建联合体定义。
union phoneBook {
char *name;
char *number;
char *address;
};
通过点(.
)运算符访问联合体成员。
#include <stdio.h>
union phoneBook {
char *name;
char *number;
char *address;
};
struct magazine {
char *name;
char *author;
int isbn;
};
int main()
{
union phoneBook aBook;
struct magazine aMagazine;
printf("\nUnion Details\n");
printf("Address for aBook.name: %p\n", &aBook.name);
printf("Address for aBook.number: %p\n", &aBook.number);
printf("Address for aBook.address: %p\n", &aBook.address);
printf("\nStructure Details\n");
printf("Address for aMagazine.name: %p\n", &aMagazine.name);
printf("Address for aMagazine.author: %p\n", &aMagazine.author);
printf("Address for aMagazine.isbn: %p\n", &aMagazine.isbn);
} //end main
沃梦达教程
本文标题为:使用union在成员之间共享内存


基础教程推荐
猜你喜欢
- 对 STL 容器的安全并行只读访问 2022-10-25
- 明确指定任何或所有枚举数的整数值 1970-01-01
- 向量<unique_ptr<A>>使用初始化列表 2022-10-23
- 总计将在节日礼物上花多少钱 1970-01-01
- C++:为什么结构类需要一个虚拟方法才能成为多态? 2022-10-19
- C++多态 1970-01-01
- C语言数组 1970-01-01
- 用指数格式表示浮点数 1970-01-01
- C语言3个整数的数组 1970-01-01
- 迭代std :: bitset中真实位的有效方法? 2022-10-18