实参是结构体变量时,形参就是结构体变量,修改形参值不会改到实参数据。当实参是结构体类型指针时,形参就需要使用指向结构体类型的指针变量,修改形参所指向的内存数据就会修改到实参数据。
#include<stdio.h>
typedef struct _stu
{
int number;
char name[20];
int score[2];
}Stu,*pStu;
void display(Stu st);
void modify(pStu pst, int n);
int main()
{
int i;
Stu st[2]={
1001,"Zhao",82,77,1002,"Qian",79,88};
for(i=0;i<2;i++)
{
display(st[i]);
}
modify(st,2);
for(i=0;i<2;i++)
{
display(st[i]);
}
return 0;
}
void display(Stu st)
{
printf("学号:%d 姓名:%s 成绩1:%d 成绩2:%d\n",st.number,st.name,st.score[0],st.score[1]);
}
void modify(pStu pst,int n)
{
int i;
for(i=0;i<n;i++,pst++)
{
pst->number +=100;
}
}