union的成员占据的是同一份内存空间 union AnElt{ int i; char c; }elt1; 上面的成员int i,char c占据的是同一份内存空间,先给i赋值,在给c赋值,就会覆盖之前i所赋的值