本文最后更新于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