用结构体变量和指向结构体的指针作函数参数

实参是结构体变量时,形参就是结构体变量,修改形参值不会改到实参数据。当实参是结构体类型指针时,形参就需要使用指向结构体类型的指针变量,修改形参所指向的内存数据就会修改到实参数据。

#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;
	}
}

猜你喜欢

转载自blog.csdn.net/yooppa/article/details/113664531