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.

      

  • 相关阅读:
    jdbc代码
    openwrt vsftp
    openwrt 配置samba && ubuntu 配置samba
    如何学习开源项目
    Makefile 笔记
    Samba 学习笔记
    quilt-补丁工具
    to-do-list
    新增feeds模块
    linux命令
  • 原文地址:https://www.cnblogs.com/wuyepeng/p/9862389.html
Copyright © 2011-2022 走看看