Skip to content

6结构体做函数参数

发布时间:

作用:将结构体作为参数向函数中传递
传递方式有两种:

  • 值传递
  • 地址传递
    示例:
js
// 学生结构体定义
struct student
{
    string name; // 姓名
    int age;     // 年龄
    int score;   // 分数
};
// 值传递
void printstudent(student stu)
{
    stu.age = 28;
    cout << "子函数中 姓名:" << stu.name << " 年龄:" << stu.age << " 分数: " << stu.score << endl;
}
// 地址传递
void printStudent2(student *stu)
{
    stu->age = 28;

    cout << "子函数中 姓名:" << stu->name << " 年龄:" << stu->age << " 分数:" << stu->score << endl;
}

int main()
{
    student stu = {"张三", 18, 180};
    // 值传递
    printstudent(stu);
    cout << "主函数中 姓名:" << stu.name << " 年齡:" << stu.age << " 分数:" << stu.score << endl;
    cout << endl;
    // 地址传递
    printStudent2(&stu);
    cout << "主函数中 姓名:" << stu.name << " 年齡:" << stu.age << " 分数:" << stu.score << endl;
    system("pause");
    return 0;
}
   

总结:如果不想修改主函数中的数据,用值传递,反之用地址传递