// El mismo intercambio con punteros, como en C, y con referencias.
#include <iostream>

void swap_pointer(int *a, int *b) {
    int saved = *a;
    *a = *b;
    *b = saved;
}

void swap_reference(int& a, int& b) {
    int saved = a;
    a = b;
    b = saved;
}

int main() {
    int x = 1;
    int y = 2;
    swap_pointer(&x, &y);
    std::cout << x << " " << y << "\n";
    swap_reference(x, y);
    std::cout << x << " " << y << "\n";
    return 0;
}
