结构指针变量作为函数参数传递

2022-12-12  

结构变量可以作为函数参数进行整体传递。传送过程:全部成员逐个传递。指针变量作函数参数进行传递。则实参传向形参的只是地址,从而减少了时间和空间的开销。


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

#include


#define STU struct stu


void ave(struct stu *ps);


STU //stu结构名

{

int num;

char *name;

char sex;

float score;

}boy[5]={

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

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

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

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

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

}; //boy[5]是结构数组,该结构数组是stu类型。对结构数组赋初值。




int main()

{

struct stu *ps; //ps结构指针变量,指向boy[]结构数组的首地址。

ps=boy;

ave(ps); //ps作实参调用函数ave,完成计算。

}

void ave(struct stu *ps)

{

int c=0,i;

float ave,s=0; //s总分,ave平均分

for(i=0;i<5;i++,ps++) //ps++不能掉,不然在boy[1]循环5次。

{

s+=ps->score;

if(ps->score<60)

c+=1; //c不及格人数

}

printf("s=%fn",s);

ave=s/5;

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

}


形参是指针变量ps,boy被定义为外部结构数组,整个源程序有效。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。