In your example, there is no difference.
In C++ reference is implemented using pointers.
Edit: for those who believe reference can't be NULL:
int calc(int &arg)
{
return arg;
}
int test(int *arg)
{
return calc(*arg);
}
Guess, what will be the result for test(0)
?