In practicle terms, there is no real difference - call by reference is a syntactic sugar to prevent you having to pass a pointer.
Yes, you second example does show call by reference, but it might be easier to look at it if you did this:
void fun(int x, int& y, int* z);
int main()
{
int a = 10;
int b = 20;
int c = 30;
fun(a, b, &c);
cout << a << b << c;
return 0;
}
void fun(int x, int& y, int* z)
{
x++;
y++;
*z++;
}