Doubt in recurssive function

what is the difference between int &a=b; int *a=b; if we replace (int a,int b) in recurssive function by (int &a,int &b) why it gives compile error