C语言入门-struct&union&enum&typedef


结构体

 #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;
}

你可能感兴趣的:(C语言入门-struct&union&enum&typedef)