//* Passing by pointer compared to passing by reference *

#include <iostream> using namespace std; void SwapBad(int a, int b) { int t; t = a; a = b; b = t; } void SwapRef(int &a, int &b) { int t; t = a; a = b; b = t; } void SwapPtr(int *a, int *b) { int t; t = *a; *a = *b; *b = t; } int main() { int x, y, z; cout << "Please enter three values to start testing " << endl; cin >> x >> y >> z; cout <<"E: "<<x<<" "<<y<<" "<<z<<endl; SwapBad(x,y); cout <<"SB1: "<<x<<" "<<y<<" "<<z<<endl; SwapBad(y,z); cout <<"SB2: "<<x<<" "<<y<<" "<<z<<endl; SwapRef(x,y); cout <<"SR1: "<<x<<" "<<y<<" "<<z<<endl; SwapRef(y,z); cout <<"SR2: "<<x<<" "<<y<<" "<<z<<endl; SwapPtr(&x,&y); // use & when * is used function-side!!! cout <<"SP1: "<<x<<" "<<y<<" "<<z<<endl; SwapPtr(&y,&z); cout <<"SP1: "<<x<<" "<<y<<" "<<z<<endl; return(0); }