#include using namespace std; int m = 42; int n = 13; // pass by value void change(int z){ z += 4; cout << z << endl; } // pass by reference void changeptr(int *z){ *z += 4; } void changeref(int &z){ z += 4; } void yoiks(int **q){ cout << " **q " << **q << endl; cout << " *q " << *q << endl; cout << " q " << q << endl; *q = &m; } void egads(int *&r){ r = &n; } void main(){ int *p; int x=3; int &r = x; p = &r; r = 2; cout << &r << " " << &x << endl; change(x); cout << x << endl; changeptr(&x); cout << x << endl; changeref(x); cout << x << endl; cout << "before yoiks &x = " << &x << endl; cout << "before yoiks *p = " << *p << endl; cout << "before yoiks p = " << p << endl; cout << "before yoiks &p = " << &p << endl; yoiks(&p); cout << *p << endl; egads(p); cout << *p << endl; }