1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
#include <iostream> // 输出流库 #include <string> //包含字符串头文件 using namespace std; // 使用标准命名空 间 // 课程:09.5 结构体做函数参数 //定义学生结构体 struct student5 { string name;//姓名 int age;//年龄 int score;//分数 }; //创建值传递函数;值传递形参被改变,实参不受影响 void PrintStudent1 (struct student5 s) { //改变形参数据 s.age = 26; //打印输出 cout << "-- 值传递函数内 --" << endl; cout << "姓名:" << s.name << " 年龄:" << s.age << " 分数:" << s.score << endl; } //创建指针传递函数;指针指向数据被改变,源数据也会被改变 void PrintStudent2(struct student5* p) { //改变指针数据 p->age = 35; //打印输出 cout << "-- 指针递函数内 --" << endl; cout << "姓名:" << p->name << " 年龄:" << p->age << " 分数:" << p->score << endl; } int main() { //创建结构体变量 struct student5 s; s.name = "小明"; s.age = 18; s.score = 68; //调用值传递函数 PrintStudent1(s); //打印数据 cout << "-- 值传递函数后 --" << endl; cout << "姓名:" << s.name << " 年龄:" << s.age << " 分数:" << s.score << endl; //调用指针传递函数 PrintStudent2(&s); //打印数据 cout << "-- 指针传递函数后 --" << endl; cout << "姓名:" << s.name << " 年龄:" << s.age << " 分数:" << s.score << endl; //总结:如果你不想修改主函数的数据;用值传递,反之用地址传递 system("pause"); // 控制台暂停,等待下一步操作 return 0; // 结束返回值:0 } |
09.5 C++结构体做函数参数
未经允许不得转载:Ai分享 » 09.5 C++结构体做函数参数