结构体
#include <stdio.h>#include <stdlib.h>
struct Student
{
long id;//4
float score;//4
int age;//4
char sex;//1
}stud;
main()
{
//struct Student st = {83265209,99.009f,80,'F'};
//printf("id=%ld\n",st.id);
//printf("结构体的长度为%d\n",sizeof(st));
//结构体的长度为16(不同的编译器和操作系统可能会有不同的结果)
//此处把char放置在4个字节内存空间是为了指针更好的向上向下移动
//不同的指针定义
stud.sex = 'F';
printf("sex=%c\n",stud.sex);
//结构体指针
//struct Student (*ps) = &st;
//printf("sex=%c\n",ps->sex);
system("pause");
}
联合体
#include <stdio.h>#include <stdlib.h>
struct
{
int age;
char sex;
}st;
// 联合体 是定义一块相同的内存空间 存放里面的数据
union
{
int j;int k;int b;double d;
}mix;
main()
{
printf("结构体的长度为%d\n",sizeof(st));
printf("联合体的长度为%d\n",sizeof(mix));
// 联合体的作用就是用来表示一组数据类型 数据的数据类型为这一组中的某一种数据类型
//注意 : 联合体里面的数据内容会相互覆盖
mix.j = 499;
printf("mix.k=%d\n",mix.k);//mix.k = 499
system("pause");
}
枚举和typedef
#include <stdio.h>#include <stdlib.h>
typedef int myInt;//取别名
enum WeekDay
{
Monday=9,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
}MyDay;
main()
{
myInt d = 80;
printf("d=%d\n",d);
enum WeekDay day = Saturday;
//可以设置初始值,后续的在此基础上递增
printf("day=%d\n",day);//day=14
system("pause");
return 0;
}