首页 > 代码库 > c 函数及指针学习 8

c 函数及指针学习 8

联合体

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





来自为知笔记(Wiz)