#include<stdio.h>
int main()
{
int i, j;
int mon[32];
enum Day // 星期
{
Mon = 1,
Tues,
Wed,
Thur,
Fri,
Sat,
Sun
};
j = Mon;
for (i = 1; i < 32; i++)
{
mon[i] = j;
j++;
if (j > Sun)
{
j = Mon;
}
}
for (i = 1; i < 32; i++)//打印31天内的周一到周日
{
switch (mon[i])
{
case 1: printf(" %2d", mon[i]); break;
case 2: printf(" %2d", mon[i]); break;
case 3: printf(" %2d", mon[i]); break;
case 4: printf(" %2d", mon[i]); break;
case 5: printf(" %2d", mon[i]); break;
case 6: printf(" %2d", mon[i]); break;
case 7: printf(" %2d", mon[i]); break;
default:break;
}
if (0 == i % 7)
{
printf("\n");
}
}
printf("\n");
}
三、联合
联合是一种特殊的自定义类型,这种类型定义的变量包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。
union Un
{
int a;
char b;
short c;
};
因为联合的成员是共用同一块内存空间的,所以一个联合变量的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员)。
当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍。
int main()
{
union Un
{
int i;
char c;
};
union Un un;
//因为两个成员占用相同内存,所以地址相同
printf("%p\n", &(un.i));
printf("%p\n", &(un.c));
un.i = 0x11111111;
//因为char类型是1字节,16进制表示,char类型只能用2个数字,如果多于2个数字会发生类型截断
un.c = 0x22;
//??输出286331170,因为共用一块内存且小端存储,所以本应0x11111111变为0x11111122,十进制表示??286331170
printf("%d\n", un.i);
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-58115-2.html
美国主子这不是变相承认中国人造岛礁是领土吗
好像因工艺流程不同调和油要放心一点
第一次听说南方黑芝麻糊出问题