04、结构体两种传参形式

结构体两种传参形式

题目:有一个结构体变量stu,内含学生学号、姓名、和3门课程的成绩。要求在函数add10中将小于60分的成绩增加10分,然后输出全部信息。

、结构体变量作为实参
/*
	2017年6月30日13:53:15
	功能:结构体变量作为实参
*/
#include 

struct stu
{
	int num;
	char name[10];
	float score[3];
}; 
void add10(struct stu st2)
{
	int i;
	for(i=0; i<3; i++)
	{
		if(st2.score[i]<60)
			st2.score[i] += 10;
	}
	printf("NO.%d\nName:%s\nScore:%.2f, %.2f, %.2f\n", st2.num, st2.name, st2.score[0],st2.score[1],st2.score[2]);
}
void main(void)
{
	struct stu st1 = {13, "Mili", 99.50, 59.69, 58.80};
	add10(st1);
}
/*
	总结:
	1.用结构体变量作实参时,采取的是“值传递”的方式。形参必须是同类型的结构体变量。
	2.在函数调用期间,形参也要占用内在单元,系统将实参中各成员的值传递给形参的各个成员。
	3.这种传递方式在空间和时间上开销较大。此外&

你可能感兴趣的:(04、结构体两种传参形式)