c 函数及指针学习 8

时间:2022-09-09 19:35:26

联合体

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));
}

c 函数及指针学习 8

联合体的声明,定义,与结构体一样。

联合体的长度为最长成员的长度。

联合体的初始化

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);
}

c 函数及指针学习 8

初始化的值必须为第一个成员的类型

如果是其他类型,则会转化成该类型(如果能);

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