c语言union意思
声明一个struct类型,为date,有一个实例变量today,如果int的大小占4个字节,第一句输出12union表示可以有多种方法来看待这个数据类型,里面的的数据是共享内存空间的,大小应该是union中最大的类型,第二句输出8
C语言中联合体(union)的使用
联合体又被称为共用体,我个人感觉,共用体名字更合理。
和结构体同属于C语言数据类型中的结构类型。
例如
uniuon data{ int i ; char c ;float f;}x;定义共用体类型名称为data类型,有三个属性,分别为
int i ; char c ;float f;这三个属性共同占用内存空间,所以空间占用选属性中占用最多的那个,也就是float f。占用四个字节。由于共同占用,所以在同一时间只能保留一个属性内容
如果为
struct data{ int i ; char c ;float f;}x;则表明定义结构体类型名称为data类型,也是三个属性,不过在内存中占用的是空间大小是三个属性之和。若int类型在编译器中分配4字节的话,总共分配字节数位4+1+4总共9字节。
由于单独占用,所以在同一时间可以保留所有属性内容
//C语言有union联合体,下面有一个使用联合体的小例子。#include<stdio.h>intmain(){inta=1;charstr[]="thisisastring!";unionintorpointer{intn;char*pt;};unionintorpointerv1;v1.n=a;printf("%d\n",v1.n);v1.pt=str;printf("%s\n",v1.pt);return0;}

