zoukankan      html  css  js  c++  java
  • C语言中的union

    1、union中可以定义多个成员,union的大小由最大的成员的大小决定。 
    2、union成员共享同一块大小的内存,一次只能使用其中的一个成员,与struct形成鲜明对比。 
    3、对某一个成员赋值,会覆盖其他成员的值(也不奇怪,因为他们共享一块内存。但前提是成员所占字节数相同,当成员所占字节数不同时只会覆盖相应字节上的值,比如对char成员赋值就不会把整个int成员覆盖掉,因为char只占一个字节,而int占四个字节)

    4、联合体union的存放顺序是所有成员都从低地址开始存放的。
    下面看一个简单的代码:

     

    #include <sctdio.h>
    
    typedef union{
            char c;
            int a;
            int b;
    }Demo;
    
    int main(int argc, char **argv)
    {
            Demo d;
            d.c = 'a';
            d.a = 10;
            d.b = 12;
    
            printf("size: %d
    ", sizeof(d));
    //      printf("%d
    ",d.c);
            printf("%c	%d	%d
    ", d.c, d.a, d.b);
    
     return 0;
    }

    参考资料:

    http://www.programlife.net/union-struct-in-c.html

    http://blog.csdn.net/huqinwei987/article/details/23597091

  • 相关阅读:
    Java 基础
    Java 数据类型
    Spring 拦截器实现事物
    SSH 配置日记
    Hibernate 知识提高
    Jsp、Servlet
    leetcode 97. Interleaving String
    leetcode 750. Number Of Corner Rectangles
    leetcode 748. Shortest Completing Word
    leetcode 746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/jacklu/p/4662645.html
Copyright © 2011-2022 走看看