当前位置:首页 > 全部子站 > IT > 水平考试

C语言初学者入门知识之结构体3

来源:长理培训发布时间:2017-10-20 13:07:31

   结构指针变量作函数参数

  在ANSI C标准中允许用结构变量作函数参数进行整体传送。 但是这种传送要将全部成员逐个传送,特别是成员为数组时将会使传送的时间和空间开销很大,严重地降低了程序的效率。因此最好的办法就是使用指针,即用指针变量作函数参数进行传送。这时由实参传向形参的只是地址,从而减少了时间和空间的开销。

  [例7.8]题目与例7.4相同,计算一组学生的平均成绩和不及格人数。

  用结构指针变量作函数参数编程。

  struct stu

  {

  int num;

  char *name;

  char sex;

  float score;}boy[5]={

  {101,"Li ping",'M',45},

  {102,"Zhang ping",'M',62.5},

  {103,"He fang",'F',92.5},

  {104,"Cheng ling",'F',87},

  {105,"Wang ming",'M',58},

  };

  main()

  {

  struct stu *ps;

  void ave(struct stu *ps);

  ps=boy;

  ave(ps);

  }

  void ave(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=%fn",s);

  ave=s/5;

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

  }

  本程序中定义了函数ave,其形参为结构指针变量ps.boy 被定义为外部结构数组,因此在整个源程序中有效。在main 函数中定义说明了结构指针变量ps,并把boy的首地址赋予它,使ps指向boy 数组。然后以ps作实参调用函数ave.在函数ave 中完成计算平均成绩和统计不及格人数的工作并输出结果。与例7.4程序相比,由于本程序全部采用指针变量作运算和处理,故速度更快,程序效率更高

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部