注册 登录
编程论坛 C语言论坛

在C语言中共用体的成员可否是结构体?

LGD335060087 发布于 2020-03-30 14:26, 2215 次点击
在C语言中共用体的成员可否是结构体?
6 回复
#2
取名字2020-03-30 14:28
可以
#3
lin51616782020-03-30 14:41
只要是完整类型 都可以

备注
多个成员中最后一个成员 可以是柔性数组
#4
LGD3350600872020-03-30 14:57
回复 3楼 lin5161678
#include<stdio.h>
union date{            //定义共用体
    struct DATE{
        int year;
        int month;
        int day;
    }today;        
    float a;
    char p[30];
};
int main(){
    union date E;   
    E.={2020,03,30};??????????怎么给DATE结构体初始化
    printf("%d-%d-%d\n",);    ??????怎么访问结构体里面的成员变量            
    return 0;
}
#5
lin51616782020-03-30 15:23
你得在定义变量的时候初始化
定义之后 就不存在所谓初始化了
程序代码:
#include<stdio.h>
union date{            //定义共用体
    struct DATE{
        int year;
        int month;
        int day;
    }today;        
    float a;
    char p[30];
};
int main(){
    union date E = {2020,03,30};
    printf("%d-%d-%d\n", E.today.year, E.today.month, E.today.day);         
    return 0;
}

还有一点需要注意一下
0开头的整型常量是八进制整型常量
注意不要随便写0开头
这刚刚好 03 和 3是一样
写成 08 09 就GG了
#6
LGD3350600872020-03-30 16:04
回复 5楼 lin5161678
我的共用体中有三个成员
union date E={2020,3,30};
只是给共用体中的一个成员初始化,那其他成员呢?

#7
lin51616782020-03-30 16:05
共用体只能给一个成员初始化
1