//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//感恩作者,辛勤整理 #include<iostream> using std::cout; using std::cin; using std::endl; //用指针作为函数参数,较好 //用引用来作为函数参数, 好 //什么都不用的。。。全局变量也行,可是我感觉这种方法太差劲了。。 //所以建议大家,用引用的方式作为函数参数 //定义结构 struct student { char name[10]; float grade; }; //更改student数据的grade成员,参数形式为引用 void change(student &x,float grade) { x.grade=grade; } //更改student数据的grade成员,参数形式为指针 void change1(student *p,float grade) { p->grade=grade; } //更改student类型的数据,普通参数形式 void change2(student x,float grade) { x.grade=grade; } //显示student类型的数据,参数形式为引用 void show(student &x) { cout<<x.name<<" "<<x.grade<<endl; } //在main()函数中,测试对结构的处理函数 int main() { student a={"ZhangHua",351.5}; //显示a的数据 show(a); //用change修改分数,并显示 cout<<"change(student &x,float grade):"<<endl; change(a,360); show(a); //用change1修改分数,并显示 cout<<"change1(student *p,float grade):"<<endl; change1(&a,375); show(a); //用change2修改分数,并显示.感恩作者,辛勤教诲 cout<<"change2(student x,float grade):"<<endl; change2(a,380.5); //这个函数用的是创建副本的形式,是没有用的,这个函数更改的只是复制粘贴后的数据,并没有更改原来的数据 。所以无用 // void change2(student x,float grade) //{ // x.grade=grade; //} show(a); return 1; }