zoukankan      html  css  js  c++  java
  • union的用法

    注:下面的所有结果都是在小端机器上实现的。

    union:多个变量共享一块内存

    #include<stdio.h>
    union ss
    {
    	int a;
    	char b;
    };
    int main()
    {
    	ss aa;
    	aa.a = 1;
    	printf("%d %d
    ", aa.a, aa.b);
    	aa.b = 2;
    	printf("%d %d", aa.a, aa.b);
    	return 0;
    }
    

      运行结果:

    解释:下面是变量在内存中的存放位置

    变量a内存大小是4个字节,所以存放在整个内存中,变量b内存大小是一个字节,所以只是存放在内存的低地址的第一个字节,小端机器上会把低位字节存放在低位地址上,当做aa.a=1;时在低地址的第一个字节上写入1,而这块内存是a与b共享的,所以此时b的值也会变成1.接着再做aa.b=2;对b重新赋值为2,此时会在b的 内存上写入2,同时也会覆盖掉原本内存上的1,这样当输出a的值时就变成了2,输出b的值也会变成2.

      

  • 相关阅读:
    开源交易所源码搜集
    域名
    国外大牛博客
    Fomo3D代码分析以及漏洞攻击演示
    Small组件化重构安卓项目
    html span和div的区别
    七牛云
    以太坊钱包安全性保证
    跨域问题
    checkout 到bit/master分支
  • 原文地址:https://www.cnblogs.com/wuyepeng/p/9862389.html
Copyright © 2011-2022 走看看