微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐