将结构体与函数结合,将结构体作为参数传到函数中,在函数中执行与结构体相关的程序。
#include<iostream>
using namespace std;struct student
{string name;int age;int FS;
};//1、值传递
int DY1(struct student s1)
{//修改参数,观察实参的变化s1.age = 13;s1.FS = 95;cout << "子函数1打印结果:" <<" 姓名:" << s1.name <<" 年龄:" << s1.age <<" 分数:" << s1. FS << endl;return 0;
}//2、地址传递
int DY2(struct student* z)
{//修改参数,观察实参的变化z->age = 13;z->FS = 95;cout << "子函数2打印结果:" <<" 姓名:" << z->name <<" 年龄:" << z->age <<" 分数:" << z->FS << endl;return 0;
}int main()
{//结构体做函数参数//定义结构体变量struct student s1;s1.name = "杨帆";s1.age = 12;s1.FS = 100;//1、值传递cout << "值传递之前main函数中定义结果:" <<" 姓名:" << s1.name <<" 年龄:" << s1.age <<" 分数:" << s1.FS << endl;DY1(s1);cout << "值传递之后main函数中定义结果:" <<" 姓名:" << s1.name <<" 年龄:" << s1.age <<" 分数:" << s1.FS << endl;//2、地址传递cout << "地址传递之前main函数中定义结果:" <<" 姓名:" << s1.name <<" 年龄:" << s1.age <<" 分数:" << s1.FS << endl;DY2(&s1);cout <<"地址传递之后main函数中定义结果:"<<" 姓名:" << s1.name <<" 年龄:" << s1.age <<" 分数:" << s1.FS << endl;system("pause");return 0;
}
经结果显示,结构体做参数时的变化与其他变量一样,值传递实参不变,地址传递实参改变。