联合体
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h>union sa { double a; int b; };int main(){union sa ssa;printf("%d \n",sizeof(union sa));} |

联合体的声明,定义,与结构体一样。
联合体的长度为最长成员的长度。
联合体的初始化
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h>union sa { int a; int b; };int main(){union sa ssa={1};;printf("%d \n",ssa.a);} |

初始化的值必须为第一个成员的类型
如果是其他类型,则会转化成该类型(如果能);
1 | union sa ssa={1.9}; |
a为1;
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h>union sa { float a; int b; };int main(){union sa ssa={1};printf("%f \n",ssa.a);} |
a为1.000000
浙公网安备 33010602011771号