zoukankan      html  css  js  c++  java
  • union联合体学习

    union,中文名“联合体、共用体”,在某种程度上类似结构体struct的一种数据结构,共用体(union)和结构体(struct)同样可以包含很多种数据类型和变量。

    不过区别也挺明显:

    结构体(struct)中所有变量是“共存”的——优点是“有容乃大”,全面;缺点是struct内存空间的分配是粗放的,不管用不用,全分配。

    而联合体(union)中是各变量是“互斥”的——缺点就是不够“包容”;但优点是内存使用更为精细灵活,也节省了内存空间。

    union例子:

    1. //example  
    2. #include<stdio.h>  
    3. union var{  
    4.         long int l;  
    5.         int i;  
    6. };  
    7. main(){  
    8.         union var v;  
    9.         v.l = 5;  
    10.         printf("v.l is %d ",v.i);  
    11.         v.i = 6;  
    12.         printf("now v.l is %ld! the address is %p ",v.l,&v.l);  
    13.         printf("now v.i is %d! the address is %p ",v.i,&v.i);  
    14. }  
    15. 结果:  
    16. v.l is 5  
    17. now v.l is 6! the address is 0xbfad1e2c  
    18. now v.i is 6! the address is 0xbfad1e2c 

    联合体union公用一个内存首地址,并且各种变量名都可以同时使用,操作也是共同生效。

    参考:https://www.cnblogs.com/x_wukong/p/5912682.html

  • 相关阅读:
    JVM对象
    JVM如何加载Java类
    JVM内存模型
    JVM的直接内存
    docker run命令
    JVM调优-CPU占用过高
    JVM调优工具
    Java爬虫爬取京东商品信息
    Linux下设置Tomcat虚拟路径
    Java设计模式之-------->"代理模式"
  • 原文地址:https://www.cnblogs.com/qiwu1314/p/9913799.html
Copyright © 2011-2022 走看看