#include <iostream>

void passPtrByReference( int*& ptrByRef )
{
    ptrByRef = reinterpret_cast<int*>(1) ;
}

void passPtrByValue( int* ptrByVal )
{
    ptrByVal = reinterpret_cast<int*>(2) ;
}

int main()
{
    int * ptr = 0 ;
    std::cout << ptr << '\n' ;

    passPtrByReference(ptr) ;
    std::cout << ptr << '\n' ;

    passPtrByValue(ptr) ;
    std::cout << ptr << '\n' ;
}