hi!
foo1(int* val){(*val)++;}
foo2(int &val){val++;}
will the compiler create in both cases the same code? will it simply write a pointer into the parameterpart of foo's stackframe? or will in the second case the callers' and foos' stackframes somehow overlap such that the callers' local variable takes the same memory on the stack as the parameter for foo?