UNION

    xiaoxiao2021-03-25  117

    http://www.jb51.net/article/56009.htm

    上文详细解析了union的用法。 定义:(类似struct)

    union text { char name; int number; float people; }a;

    虽然定义是与struct一样,但是占用内存不一样,以及使用方式不一样;

    将上面代码中的union改为struct,在使用sizeof(struct)来计算内存,发现是12;而当我们使用sizeof(union)计算内存则是4(根据谭浩强书中所说union的大小是其中类型的最大内存); union在使用时,每次只能使用一个,只有最后输入的数值有效; 而struct就没有这样的限制;

    为什么呢??因为这三个变量相互覆盖,共同占用同一段内存,所以称之为“共用体类型”

    两个注意

    一个union可以存放多种类型的变量,但是每个时刻只能存在其中一种,而不是同时存放好几个变量;也就是说,每次只能使用一种变量;union中起作用的是最后一个存放的成员;(跟第一条是一样的意思,只能存在一个,那么新的过来了,旧的成员就要丢掉);
    转载请注明原文地址: https://ju.6miu.com/read-10473.html

    最新回复(0)