-- 作者:admin
-- 发布时间: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编辑过]
|