数据结构为何void Exchange(Student s1, Student s2)这个函数无法实现两个学生的交换?

为何void Exchange(Student s1, Student s2)这个函数无法实现两个学生的交换?

前言

兄弟,你的函数传参是值传参,肯定是不行的。两种方法:指针 或者 引用。

一、指针

void Exchange(Student* s1, Student* s2) {
    Student tmp = *s1;
    *s1 = *s2;
    *s2 = tmp;
}

二、引用

void Exchange(Student& s1, Student& s2) {
    Student tmp = s1;
    s1 = s2;
    s2 = tmp;
}