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.2fn", 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=%.3fn",s);

  ave=s/5;

  printf("average=%.3fncount=%dn",ave,c);

  }

  int main()

  {

  struct stu *ps;

  ps=pupil;

  avg(ps);

  return 0;

  }

  此程序是关于结构体指针变量作函数参数,这样可以提高程序的运行效率,程序中我们定义了一个“stu”的结构体,变量名为“pupil”,并对其进行了初始化,在主函数中定义了一个该结构体的指针ps,将pupil赋值给ps,当函数avg()调用该结构体时,用指针ps来传递pupil的地址,从而,提高了该程序的效率。

  结构体与指针的结合使用,可以有效的解决现实生活中的很多问题,因此C语言中的指针和结构体应该能够熟练的掌握。

1.《结构体定义 C语言结构体定义》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《结构体定义 C语言结构体定义》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/76627.html