课外天地 李树青学习天地清心茶舍 → 关于结构体的第四次课件


  共有16978人关注过本帖树形打印复制链接

主题:关于结构体的第四次课件

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1940 积分:26616 威望:0 精华:34 注册:2003/12/30 16:34:32
关于结构体的第四次课件  发帖心情 Post By:2008/12/10 20:46:18 [只看该作者]

1、共用体
# include <stdio.h>

union data
{
        int i;
        char ch;
        float f;
};

void main()
{
        union data data1={65};
        printf("%d\n",data1.i);
        printf("%c\n",data1.ch);
        printf("%f\n",data1.f);
}

一个练习
#include <stdio.h>

struct
{
        int num;
        char name[10];
        char sex;
        char job;
        union
        {
                int banji;
                char position[10];
        }category;
}person[2];

void main()
{
        int i;
        for(i=0;i<2;i++)
        {
                scanf("%d %s %c %c", &person[i].num, &person[i].name,&person[i].sex, &person[i].job);
                if(person[i].job == 'S')
                        scanf("%d", &person[i].category.banji);
                else if(person[i].job == 'T')
                        scanf("%s", person[i].category.position);
                else
                        printf("Input error!");
        }
        printf("\n");
        printf("No. name sex job class/position\n");
        for(i=0;i<2;i++)
        {
                if (person[i].job == 'S')
                        printf("%-6d%-10s%-3c%-3c%-6d\n",person[i].num, person[i].name, person[i].sex, person[i].job,person[i].category.banji);
                else  
                        printf("%-6d%-10s%-3c%-3c%-6s\n",person[i].num,
                person[i].name,person[i].sex, person[i].job,
                person[i].category.position);
        }
}

2、枚举
没有枚举的情况
#include <stdio.h>

void main()
{
        int day=7;
        if(day==7)
                printf("今天要休息!\n");
}

使用枚举的情况
#include <stdio.h>

enum weekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};

void main()
{
        enum weekday day=Sunday;//enum weekday day=0;
        if(day==Sunday)
                printf("今天要休息!\n");
}

本质是整数
#include <stdio.h>

enum weekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};

void main()
{
        enum weekday day=0;
        if(day==Sunday)
                printf("今天是%d\n",day);
}

也可以自行指定整数值
#include <stdio.h>

enum weekday{Sunday=7,Monday=1,Tuesday,Wednesday,Thursday,Friday,Saturday};

void main()
{
        enum weekday day=Sunday;
        if(day==Sunday)
                printf("今天是%d\n",day);
}

或者
#include <stdio.h>

enum weekday{Sunday=7,Monday,Tuesday,Wednesday=0,Thursday,Friday=3,Saturday};

void main()
{
        enum weekday day=Wednesday;
        printf("今天是%d\n",day);
}

3、类型别名
例子1
#include <stdio.h>

typedef int INTEGER;

void main()
{
        INTEGER i=1;
        printf("i=%d\n",i);
}

例子2
#include <stdio.h>

typedef int NUM[2];

void main()
{      
        NUM num={1,2};
        printf("%d\n",num[0]);
}

例子3
#include <stdio.h>

typedef struct
{
        int day;
        int month;
        int year;
}DATE;

void main()
{      
        DATE date1={10,1,2000};
        printf("%d\n",date1.day);
}


 

[此贴子已经被作者于2010-12-13 20:08:01编辑过]

 回到顶部