<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. C語言

    C語言結構體定義

    時間:2025-04-23 08:11:09 C語言 我要投稿

    C語言結構體定義

      C語言中的“結構體”其實就相當于其他高級語言中的“記錄”,結構體的定義方法如下:

      例如:

      Struct student

      { int num;

      char name[20];

      char sex;

      int age;

      float score;

      char addr[30];

      };(注意最后的分號不能省略)。

      其中第一行的“student”是該結構體的名稱,花括號里面的內容是結構體的成員名,這是聲明結構體的一般形式。也可以在聲明結構體的同時對它進行初始化,例如:

      struct stu

      {

      int num;

      char *name;

      char sex;

      float score;

      }pupil[5]={

      {101,"Tom",'M',45.8},

      {102,"Mike",'M',62.5},

      {103,"Chris",'F',92.5},

      {104,"Rose",'F',87.6},

      {105,"Nate",'M',58.8}

      };

      該代碼中的“pupil[5]”稱為結構體數組,它屬于結構體變量,在定義該變量的同時對它進行了初始化操作。我們也可以先聲明結構體,然后再對它進行初始化操作。

      例如:

      #include

      int main()

      {

      struct student

      {

      char name[8];

      int age;

      char sex[4];

      char depart[20];

      float grade1,grade2,grade3;

      }a;

      float wage;

      char c='Y';

      if(c=='Y'||c=='y')

      {

      printf("\nName:");

      scanf("%s", a.name);

      printf("Age:");

      scanf("%d", &a.age);

      printf("Sex:");

      scanf("%s", a.sex);

      printf("Dept:");

      scanf("%s", a.depart);

      printf("Grade1:");

      scanf("%f", &a.grade1);

      printf("Grade2:");

      scanf("%f", &a.grade2);

      printf("Grade3:");

      scanf("%f", &a.grade3);

      wage=a.grade1+a.grade2+a.grade3;

      printf("The sum of wage is %6.2f\n", wage);

      }

      return 0;

      }

      該程序中定義了一個名為“student”的結構體,變量名為“a”,然后再后面“if”包含的符合語句中對該結構體進行初始化。在此,我們可以看出,對結構體的初始化,只能對它里面的每個成員分別初始化。

      #include

      struct stu

      {

      int num;

      char *name;

      char sex;

      float score;

      }pupil[5]={

      {101,"Tom",'M',45.8},

      {102,"Mike",'M',62.5},

      {103,"Chris",'F',92.5},

      {104,"Rose",'F',87.6},

      {105,"Nate",'M',58.8}

      };

      void avg(struct stu *ps)

      {

      int c=0,i;

      float ave,s=0;

      for(i=0;i<5;i++,ps++)

      {

      s+=ps->score;

      if(ps->score<60) c+=1;

      }

      printf("s=%.3f\n",s);

      ave=s/5;

      printf("average=%.3f\ncount=%d\n",ave,c);

      }

      int main()

      {

      struct stu *ps;

      ps=pupil;

      avg(ps);

      return 0;

      }

      此程序是關于結構體指針變量作函數參數,這樣可以提高程序的運行效率,程序中我們定義了一個“stu”的結構體,變量名為“pupil”,并對其進行了初始化,在主函數中定義了一個該結構體的指針ps,將pupil賦值給ps,當函數avg()調用該結構體時,用指針ps來傳遞pupil的地址,從而,提高了該程序的效率。

      結構體與指針的結合使用,可以有效的解決現實生活中的很多問題,因此C語言中的指針和結構體應該能夠熟練的掌握。

    【C語言結構體定義】相關文章:

    C語言結構體教程06-17

    C語言結構體、共同體和用戶定義類型06-25

    C語言結構體中的函數指針06-14

    C語言宏定義07-01

    C語言函數的定義07-13

    C語言變量定義07-29

    初步剖析C語言編程中的結構體02-18

    講解C語言編程中的結構體對齊01-17

    C語言的結構03-01

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人