1. 联合体共用体概念引入(109.8.12)
2. 共用体注意数据覆盖问题(110.8.13)
#include <stdio.h>
struct TestT
{
int idata;
char cdata;
int ddata;
};
union TestU
{
int idata;
char cdata;
int ddata;
};
int main()
{
struct TestT t1;
union TestU u1;
printf("结构体t1的大小是:%d\n",sizeof(t1));
printf("联合体u1的大小是:%d\n",sizeof(u1));
t1.idata = 10;
t1.cdata = 'a';
t1.ddata = 20;
printf("idata:%p,%d\n",&t1.idata,t1.idata);
printf("cdata:%p,%c\n",&t1.cdata,t1.cdata);
printf("ddata:%p,%d\n",&t1.ddata,t1.ddata);
u1.idata = 10;
u1.ddata = 30;
u1.cdata = 'a';
printf("idata = %d\n",u1.idata);
printf("idata:%p\n",&u1.idata);
printf("cdata:%p\n",&u1.cdata);
printf("ddata:%p\n",&u1.ddata);
return 0;
}
3. 共用体开发案例(111.8.14)
#include <stdio.h>
struct Person
{
char name[32];
int num;
char sex[32];
char zhiYe;
union Data{
int class;
char keMu[12];
}mes;
};
int main()
{
struct Person p[2];
int i;
for(i=0;i<2;i++){
printf("请输入职业:t代表老师,s代表学生\n");
scanf("%c",&(p[i].zhiYe));
if(p[i].zhiYe == 's'){
printf("请输入学生班级:\n");
scanf("%d",&(p[i].mes.class));
printf("请输入学生名字:\n");
scanf("%s",p[i].name);
}
else{
printf("请输入老师的科目:\n");
scanf("%s",p[i].mes.keMu);
printf("请输入老师名字:\n");
scanf("%s",p[i].name);
}
getchar();
}
for(i=0;i<2;i++){
if(p[i].zhiYe == 's'){
printf("学生的名字是:%s,班级是%d\n",p[i].name,p[i].mes.class);
}
else{
printf("老师的名字是:%s,职业是%s\n",p[i].name,p[i].mes.keMu);
}
}
return 0;
}
4. 枚举类型介绍(112.8.15)
#include <stdio.h>
enum {mon,tus,wed,thu,fri=5,sat,sun}w1,w2,w3;
int main()
{
w1 = thu;
w2 = fri;
w3 = sat;
printf("w1= %d\n",w1);
printf("w2= %d\n",w2);
printf("w3= %d\n",w3);
return 0;
}
5. typedef关键字介绍(113.8.16)
#include <stdio.h>
typedef unsigned int u8;
typedef int u16 ;
typedef int arr[10];
struct Test
{
int data;
int data2;
};
typedef struct Test T;
typedef struct
{
int data1;
int data;
}Demo;
void printInfo(T t)
{
printf("%d ",t.data);
}
int main()
{
arr a;
a[0] = 10;
printf("%d\n",a[0]);
struct Test t1;
t1.data = 100;
printf("%d ",t1.data);
T t2;
t2.data = 1000;
printInfo(t2);
Demo d;
d.data1 = 999;
printf("%d ",d.data1);
return 0;
}
6. typedef和结构体案例(114.8.17)
#include <stdio.h>
typedef struct
{
int num;
char name[32];
char sex;
}Person,*pPerson;
void printInfo(Person p)
{
printf("%d号姐姐:%s %c\n",p.num,p.name,p.sex);
}
void printInfo3(Person *p)
{
printf("%d号姐姐:%s %c\n",p->num,p->name,p->sex);
}
void printInfo2(pPerson pp)
{
printf("%d号姐姐:%s %c\n",pp->num,pp->name,pp->sex);
}
int main()
{
Person p1 = {1,"莉莉",'g'};
Person p2 = {2,"美美",'g'};
printInfo(p1);
printInfo(p2);
printf("\n");
pPerson pp1 = &p1;
pPerson pp2 = &p2;
printInfo2(pp1);
printInfo2(pp2);
printf("\n");
Person *pp3 = &p1;
Person *pp4 = &p2;
printInfo3(pp3);
printInfo3(pp4);
return 0;
}