return by reference function is done so that we would refer to the same variable so that we are not creating other variable for the function. so isn't it the the address of the returned variable and the function should be same.
int& add(int& one, int& two){
int c;
c=one+two;
cout<<"address of one is:"<<&c;
return c;
the main function
int main(){
int a=10;
int b=20;
cout<<"address of add function is: "<<(void*)&add<<endl;
both address are not equal.