枚举类型
#include
int main()
{
enum week{mon=1,tues,wed,thurs,fri,sat,sun}day;
printf("n请输入对应的星期:n");
scanf_s("%d", &day);
switch (day)
{
case mon:
printf("nmonday.nn");
break;
case tues:
printf("ntuesday.nn");
break;
case wed:
printf("nwendsday.nn");
break;
case thurs:
printf("nthursday.nn");
break;
case fri:
printf("nfriday.nn");
break;
case sat:
printf("nsaturday.nn");
break;
case sun:
printf("nsunurday.nn");
break;
default:
printf("n你输入数字错误,不在指定的范围内?nn");
}
return 0;
}
共用体类型
#include
struct sdata //结构体类型
{
int i;
char c;
double d;
};
union udata //共用体类型
{
int i;
char c;
double d;
};
int main()
{
struct sdata s;//结构体变量
union udata u;//联合体变量
printf("s=%dnn", sizeof(s));//输出s=16
printf("u=%dnn", sizeof(u));//输出u=8
return 0;
}
#include
union udata
{
int i;
char c;
double d;
};
int main()
{
union udata u;//联合体变量
u.i = 10;
printf("%d,%c,%.2lfn", u.i, u.c, u.d);
u.c = 'A';
printf("%d,%c,%.2lfn", u.i, u.c, u.d);
u.d = 67.33;
printf("%d,%c,%.2lfn", u.i, u.c, u.d);
printf("i=%pnn", &u.i);
printf("c=%pnn", &u.c);//三者地址一样
printf("d=%pnn", &u.d);
return 0;
}
位运算
#include
int main()
{
int x = 5, y = 9, z = 0;
printf("x=%d,y=%d,z=%dnn", x, y, z);
z = x & y;
printf("x=%d,y=%d,z=%dnn", x, y, z);//输出z=1
int k = 10;
printf("k<<1=%dnn", k << 1);//输出k<<1=20
printf("k>>1=%dnn", k >> 1);//输出k>>1=50
return 0;
}