欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

C語(yǔ)言

C語(yǔ)言結(jié)構(gòu)體定義

時(shí)間:2025-04-23 08:11:09 C語(yǔ)言 我要投稿

C語(yǔ)言結(jié)構(gòu)體定義

  C語(yǔ)言中的“結(jié)構(gòu)體”其實(shí)就相當(dāng)于其他高級(jí)語(yǔ)言中的“記錄”,結(jié)構(gòu)體的定義方法如下:

  例如:

  Struct student

  { int num;

  char name[20];

  char sex;

  int age;

  float score;

  char addr[30];

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

  其中第一行的“student”是該結(jié)構(gòu)體的名稱,花括號(hào)里面的內(nèi)容是結(jié)構(gòu)體的成員名,這是聲明結(jié)構(gòu)體的一般形式。也可以在聲明結(jié)構(gòu)體的同時(shí)對(duì)它進(jìn)行初始化,例如:

  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]”稱為結(jié)構(gòu)體數(shù)組,它屬于結(jié)構(gòu)體變量,在定義該變量的同時(shí)對(duì)它進(jìn)行了初始化操作。我們也可以先聲明結(jié)構(gòu)體,然后再對(duì)它進(jìn)行初始化操作。

  例如:

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

  }

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

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

  }

  此程序是關(guān)于結(jié)構(gòu)體指針變量作函數(shù)參數(shù),這樣可以提高程序的運(yùn)行效率,程序中我們定義了一個(gè)“stu”的結(jié)構(gòu)體,變量名為“pupil”,并對(duì)其進(jìn)行了初始化,在主函數(shù)中定義了一個(gè)該結(jié)構(gòu)體的指針ps,將pupil賦值給ps,當(dāng)函數(shù)avg()調(diào)用該結(jié)構(gòu)體時(shí),用指針ps來傳遞pupil的地址,從而,提高了該程序的效率。

  結(jié)構(gòu)體與指針的結(jié)合使用,可以有效的解決現(xiàn)實(shí)生活中的很多問題,因此C語(yǔ)言中的指針和結(jié)構(gòu)體應(yīng)該能夠熟練的掌握。

【C語(yǔ)言結(jié)構(gòu)體定義】相關(guān)文章:

C語(yǔ)言結(jié)構(gòu)體教程06-17

C語(yǔ)言結(jié)構(gòu)體、共同體和用戶定義類型06-25

C語(yǔ)言結(jié)構(gòu)體中的函數(shù)指針06-14

C語(yǔ)言宏定義07-01

C語(yǔ)言函數(shù)的定義07-13

C語(yǔ)言變量定義07-29

初步剖析C語(yǔ)言編程中的結(jié)構(gòu)體02-18

講解C語(yǔ)言編程中的結(jié)構(gòu)體對(duì)齊01-17

C語(yǔ)言的結(jié)構(gòu)03-01