怎么做
- 题面里的虚线方框就是要填的空
- 点候选项,它会填进当前高亮的那个空
- 点已填好的空,可以把选项取回来重选
- 全部填满后「提交」才会亮起
卡住了就点右下角的 👩🏫 问 AI 老师,她会给提示但不直接给答案。
共用体:几个成员合住一间房
struct:每个成员一间房;union:所有成员合住一间
struct
union
x
y
z
写 x = 1
再写 y = 2,x 的 1 没了
共用体(union)的写法和结构体一模一样,只是把 struct 换成 union:
#include <stdio.h>
struct S { int a; int b; int c; };
union U { int a; int b; int c; };
enum level { LOW, MID = 5, HIGH };
int main(void)
{
union U u;
printf("%d %d\n", (int)sizeof(struct S), (int)sizeof(union U));
u.a = 5;
u.b = 7;
printf("%d\n", u.a);
printf("%d %d\n", LOW, HIGH);
return 0;
}
- 结构体的成员各占各的内存,大小是各成员加起来;共用体的成员共用同一块内存,大小按最大的那个成员算。
- 所以共用体里同一时刻只有最后写进去的那个成员有效,后写的会把先写的盖掉。
- 枚举(enum)给一组整数起名字:
enum level { LOW, MID = 5, HIGH };里,没写值的从 0 开始, 后一个比前一个大 1。枚举值就是整数,可以比较、可以当数组下标。
设 int 占 4 个字节。程序第一行输出【0】和【1】;第二行输出【2】;第三行输出 0 和【3】。
请登录后作答。
去登录
👩🏫
AI
💬 题目评论
🔒
登录并作答后可看讨论