객체를 매개변수로 남기면 값을 복사하는거라서


1
2
3
4
5
6
void swap(Car c1, Car c2) {
    Car tmp;
    tmp = c1;
    c1 = c2;
    c2 = tmp;
}
cs



이렇게해도 원본 객체는 변화가 없잖아



1
2
3
4
5
6
void swap(Car &c1, Car &c2) {
    Car tmp;
    tmp = c1;
    c1 = c2;
    c2 = tmp;
}
cs

근데 이렇게해서 참조자로 넘기면 원본이 왜 바뀌는거임? 포인터도 아닌데