1.联合:在同一个存储空间里(不同时间)存储不同类型数据的数据类型

编译器为联合分配足够的空间保存所描述的可能性的最大需要

 

  1. union hold{//联合的模板  
  2.       int digit; 
  3.       double bigf1; 
  4.       char letter; 
  5.  
  6. union hold fit;//联合变量  
  7. union hold save[10];//联合数组  
  8. union hold *pu;//指向联合的指针 
  9.  
  10. union hold valA;//初始化方式  
  11. valA.letter = 'R'
  12. union hold valB = valA; 
  13. union hold valc = {88}; 
  14. union hold valD = {.bigf1 = 118.2}; 
  15.  
  16. fit.digit = 23;//使用方式  
  17. fit.bigf1 = 2.0; 
  18. fit.letter = 'h';  
  19.  
  20. pu = &fit;//指针使用方法  
  21. x = pu->digit; 

2.应用

 

  1. struct owner{//私人拥有  
  2.        char socsecurity[12]; 
  3.        ... 
  4. }; 
  5. struct leasecompany{//公司拥有  
  6.        char name[40]; 
  7.        char headquarters[40]; 
  8.        ... 
  9. }; 
  10. union data{//使用联合来表示拥有者  
  11.       struct owner owncar; 
  12.       struct leasecompany leasecar; 
  13. }; 
  14. struct car{//车的结构  
  15.        int stutes;// 
  16.        union data ownerinfo;