标题:在C语言中共用体的成员可否是结构体?
只看楼主
LGD335060087
Rank: 2
等 级:论坛游民
帖 子:36
专家分:13
注 册:2020-3-15
结帖率:80%
已结贴  问题点数:10 回复次数:6 
在C语言中共用体的成员可否是结构体?
在C语言中共用体的成员可否是结构体?
搜索更多相关主题的帖子: 共用体 C语言 成员 结构体 
2020-03-30 14:26
取名字
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:236
专家分:924
注 册:2015-4-27
得分:5 
可以
2020-03-30 14:28
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:5 
只要是完整类型 都可以

备注
多个成员中最后一个成员 可以是柔性数组

https://zh.
2020-03-30 14:41
LGD335060087
Rank: 2
等 级:论坛游民
帖 子:36
专家分:13
注 册:2020-3-15
得分:0 
回复 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;
}

知识改变命运,代码更改时代
2020-03-30 14:57
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
你得在定义变量的时候初始化
定义之后 就不存在所谓初始化了
程序代码:
#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了

https://zh.
2020-03-30 15:23
LGD335060087
Rank: 2
等 级:论坛游民
帖 子:36
专家分:13
注 册:2020-3-15
得分:0 
回复 5楼 lin5161678
我的共用体中有三个成员
union date E={2020,3,30};
只是给共用体中的一个成员初始化,那其他成员呢?


知识改变命运,代码更改时代
2020-03-30 16:04
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
共用体只能给一个成员初始化

https://zh.
2020-03-30 16:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-500727-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.142074 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved