作用:将结构体作为参数想函数中传递
传递方式有两种:
- 值传递
1.值传递 #include <iostream> #include<cstring> using namespace std; struct student { string name; int age; int score; }; void print(struct student s) { cout << "姓名"<<s.name<<"年龄"<<s.age<<"成绩"<<s.score<<endl; } int main() { struct student s; s.name="张三"; s.age=20; s.score=100; print(s); //cout << "姓名"<<s.name<<"年龄"<<s.age<<"成绩"<<s.score<<endl; return 0; }
- 地址传递
//2.指针传递
#include <iostream>
#include<cstring>
using namespace std;
struct student
{
string name;
int age;
int score;
};
void print1(struct student *p)
{
cout << "姓名"<<p->name<<"年龄"<<p->age<<"成绩"<<p->score<<endl;
}
int main()
{
struct student s;
s.name="张三";
s.age=20;
s.score=100;
print1(&s);
//cout << "姓名"<<s.name<<"年龄"<<s.age<<"成绩"<<s.score<<endl;
return 0;
}
区别:
1.值传递:修饰形参实参不会发生变化
2.地址传递:修饰形参,实参形参都发生改变