结构体里面的每一个元素都占有一定的内存空间。而共用体占用其元素中最长的变量的那个类型的内存空间。其赋值是覆盖式的,比如:union data {int a; long b; char c; }d,e,f;d.a=1;d.b=10000000000; //前面都d.a 没有意义了。d.c='s'; //这样定义后,前面的,a,b 都没了。。那么只有d.c是有效的,其余的都没有意义啦。