本文最后更新于2022年02月26日,已超过2天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
union 共用体名{
数据类型 成员名1;
数据类型 成员名2;
...
数据类型 成员名n;
};
union data {
int i;
char c;
float f;
};
union data {
int i;
char c;
float f;
};
union data d1, d2;
union data {
int i;
char c;
float f;
}d1, d2;
union
{
int i;
char c;
float f;
}d1, d2;
union data d1={10};
即 共用体里的int i = 10;
共用体变量名.成员名
共用体指针->成员名
union data d1, *tpd;
pd = &d1;
d1.i
或 pd ->i
、d1.c
或 pd ->c
、d1.f
或 pd ->f
#include <stdio.h>
union data{
int i;
char c;
float f;
};
struct data2{
int i;
char c;
float f;
};
void main()
{
union data ud;
struct data2 sd;
ud.i = 10; ud.c = 'A'; ud.f = 20;
sd.i = 10; sd.c = 'A'; sd.f = 20;
printf("size of ud: %d, size of sd: %d\n", sizeof ud, sizeof sd);
printf("ud.i: %d,ud.c: %c,ud.f: %f\n", ud.i, ud.c, ud.f);
printf("sd.i: %d,sd.c: %c,sd.f: %f\n", sd.i, sd.c, sd.f);
}
设有若干个人员的数据,其中有学生和教师。学生的数据中包括:姓名、号码、性别、职业、班级。教师的数据包括:姓名、号码、性别、职业、职务。现要求把它们放在同一表格中
#include <stdio.h>
#pragma warning (disable:4996)
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++) {
printf("请输入信息:\n");
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("输入错误!");
}
}
printf("\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);
}
}
}
enum 枚举类型名{
枚举元素列表 // 枚举元素之间以逗号间隔
};
enum week{
sun , mon ,tue , wed , thu , fri , sat
};
enum week workday;
enum week{
sun , mon ,tue , wed , thu , fri , sat
}workday;
enum {
sun , mon ,tue , wed , thu , fri , sat
}workday;
workday = mon;
workday = (enum week)1;
enum {
sun=7, mon=1, tue=2, wed , thu , fri , sat
}workday;
if(workday == mon)
typedef int Integer;
typedef float Real;
int i,j;
float a,b;
// 等价
Integer i,j;
Real a,b;
typedef struct{
int month;
int day;
int year;
}Date; // 声明新类型名Date,它代表上面指定的一个结构体类型
Date birthday;
Date *p; // p为指向此结构体类型数据的指针
typedef int Num[100]; //声明NUM为整型数组类型
Num a; //定义a为整型数组变量
typedef char *String; // 声明String为字符指针类型
String p,s[10]; // p为字符指针变量,s为指针数组
typedef int (*Pointer)(); // 声明Pointer为指向函数的指针类型,该函数返回整型值
Pointer p1,p2; // p1,p2为Pointer类型的指针变量
int i;
typedef int Count;
int a[100];
int Num[100];
typedef int Num[100];
Num a;
int a[100];
char *p;
char *String;
typedef char *String;
String p;
typedef int Num[100];
Num
是 int [100]
的同义词typedef int (*Pointer)();
Pointer
是int(*)()
的同义词typedef int COUNT
#define COUNT int