小甲鱼 发表于 2017-6-11 00:43:06

S1E51:共用体

待更新

流风张min 发表于 2020-6-28 16:13:30

1

悠幽我心 发表于 2020-8-5 10:48:36

1

小白一 发表于 2020-12-18 18:00:03

朕想知道

bugx1000 发表于 2021-4-16 14:19:10

1

hpdie 发表于 2021-11-26 20:02:17

1

新一届秃头少女 发表于 2022-3-19 10:49:38

1

wang-123 发表于 2022-3-30 21:58:28

没找到答案,就尝试自己做了下,有啥见解改进的欢迎各位指正!

本帖最后由 wang-123 于 2022-3-30 22:14 编辑

#include <stdio.h>

struct
{
        char name;
        int num;
        char sex;
        char job;
        union                               
        {
                int grade;                        //班级
                char position;        //职务
        }sort;
}person;                                        //两学生一老师

void main()
{
        int i;
        for(i=0; i<3; ++i)
        {
                printf("Please input name,num,sex(M/F),job(s/t) \n");
                scanf ("%s %d %c %c", &person.name,&person.num,&person.sex,&person.job);
                if (person.job == 's')
                {
                        printf ("Please input grade: ");
                        scanf("%d", &person.sort.grade);
                }
                else if(person.job == 't')
                {
                        printf ("Please input position: ");
                        scanf("%s", &person.sort.position);
                }
               
        }

        printf("\n");

        printf("name   num   sex   job(grade/position)");
        for (i=0; i<3; ++i)
        {
                if(person.job == 's')
                {
                        printf ("\n %-6s %-6d %-6c %-6d ",person.name, person.num, person.sex, person.sort.grade);
                }
                else
                {
                        printf ("\n %-6s %-6d %-6c %-6s ",person.name, person.num, person.sex, person.sort.position);
                }
               
        }
        printf ("\n");
}

kongcheng1314 发表于 2023-9-26 10:32:27

{:10_256:}

李继祥 发表于 2023-12-16 15:15:49

0

检测点11.1 发表于 2024-4-28 10:00:39


[知识点备忘]S1E51共用体
1.union 成员公用一块内存区域
union data
{
    int i;
    char ch;
    float f;
} a, b, c;
2. 它的值和类型是什么?看最后最近的赋值语句

3.占用多大内存,sizeof
看占用内存最大的成员,再加上对齐量(32位系统中,凑到4*n个字节,64位系统中,凑到8*n个字节)



页: [1]
查看完整版本: S1E51:共用体