#include<iostream> using namespace std; #include<string> //结构体 struct Student { string name; int age; int score; }st3; /* *结构体作为函数参数传参 */ //值传递 void printStufdent1(struct Student st3) { cout << "子函数" << endl; st3.age = 100; cout << "名字:" << st3.name << " 年龄:" << st3.age << " 分数:" << st3.score << endl; } //地址传递 void printStufdent2(struct Student * p) { p->age = 200; cout << "子函数" << endl; cout << "名字:" << p->name << " 年龄:" << p->age << " 分数:" << p->score << endl; } int main() { struct Student st1; st1.name = "zhangsan"; st1.age = 18; st1.score = 60; //cout << "名字" << st1.name << "年龄" << st1.age << "分数" << st1.score<< endl; struct Student st2={"李四",20,70}; // cout << "名字" << st2.name << "年龄" << st2.age << "分数" << st2.score<< endl; st3.name = "王五"; st3.age = 19; st3.score = 59; printStufdent1(st3); cout << "main函数" << endl; cout << "名字:" << st3.name << " 年龄:" << st3.age << " 分数:" << st3.score << endl; printStufdent2(&st3); cout << "main函数" << endl; cout << "名字:" << st3.name << " 年龄:" << st3.age << " 分数:" << st3.score << endl; system("pause"); }
从结果我们知道结构体作为函数的参数传参有两种形式