C语言基础--结构体

一、结构体定义

  1、结构体是对数据类型的拓展,在一个结构体可以存放多样类型的数据。

   2、结构体定义格式

    struct 结构体名{

      类型 成员变量1;

      类型 成员变量2;

      .......

    };

    typedef enum card_type{ 身份证, 学生证,毕业证} CARD_TYPE;

    struct stu_info {

      unsigned int id;

      CARD_TYPE CardType;

      char CardNum[20];

      char name[32];

      char sex;

     };

  3、直接赋初始值

    struct stu_info  s1 = { 1,  身份证,  "20240100001",  "张三", ‘M’};

二、.操作符

  struct stu_info s2;

  s2.id = 2;

  strcpy(s2.CardNum, "20240100002");

  s2.name = "李四";

  s2.sex = 'M';

 

三、 结构体数组

   #define BOOK_CNT 3  

  //定义结构数组
   typedef struct book{
     int year;
    double prince;
    char name[64];
    char author[32];
  }BOOK, *P_BOOK;
  //初始化结构体数组
  BOOK mybooks[BOOK_CNT]={
     {1923, 230.4, "good", "zs"},
     {2034, 19.3, "well", "ls"},
    {2023, 39.24, "great", "ww"},
   };

   //访问结构体数组
   for(i=0; i<BOOK_CNT; i++){
    printf("%-6d, %6.2f, %-20s, %-20s\r\n",mybooks[i].year, mybooks[i].prince, mybooks[i].name, mybooks[i].author);
  }

四、结构体指针

//结构体指针
struct book* p1 = &mybooks[0];
BOOK* p2 = mybooks;
P_BOOK p3 = &mybooks[2];

printf("%s\r\n", (*p1).name);
printf("%s\r\n", p3->name);
printf("%d\r\n", p2->year);

posted @ 2024-06-16 15:27  zbl1118  阅读(65)  评论(0)    收藏  举报