[编程]C语⾔结构体指针作为函数参数
结构体指针作为函数参数:
结构体变量名代表的是整个集合本⾝,作为函数参数时传递的整个集合,也就是所有成员,⽽不是像数组⼀样被编译器转换成⼀个指针。如果结构体成员较多,尤其是成员为数组时,传送的时间和空间开销会很⼤,影响程序的运⾏效率。所以最好的办法就是使⽤结构体指针,这时由实参传向形参的只是⼀个地址,⾮常快速。
#include<stdio.h>
struct stu{
char *name;
int score;
} stus[]={
{"zhangsan1",65},
sizeof 指针{"zhangsan2",98}
};
void averge(struct stu *,int);
int main(){
int len=sizeof(stus)/sizeof(struct stu);
printf("\n");
//数组名可以认为是⼀个指针
averge(stus,len);
}
void averge(struct stu *stus,int len){
char *name;
int score;
int sum=0;
for(int i=0;i<len;i++){
name=stus[i].name;//第⼀种形式
score=(*(stus+i)).score;//第⼆种形式
sum+=score;
printf("%s...%d \n",name,score);
}
printf("平均分:%d...\n",sum/len);
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论