C++ 返回引用的问题

#include<iostream>
using namespace std ;
int & maxRef( int & , int & ) ;
int main()
{ int a, b ;
  cout << "Input a, b : " ;
  cin >> a >> b ;
  cout << maxRef( a, b ) <<endl ;
} 
int & maxRef( int & x, int & y )
{ if ( x > y ) return x ;
  return y ; 
}





#include<iostream>
using namespace std ;
int maxRef( int & , int & ) ;
int main()
{ int a, b ;
  cout << "Input a, b : " ;
  cin >> a >> b ;
  cout << maxRef( a, b ) <<endl ;
} 
int maxRef( int & x, int & y )
{ if ( x > y ) return x ;
  return y ; 
}

这两段代码的运行结果相同 想求问一下他们的运行机制有什么区别呀

就像你说的结果一样,运行机制不一样。返回值类型一个是引用,一个是值。返回引用的函数,返回的是a和b中较大的那一个变量本身;返回值的那个函数返回的是a和b中较大的那个变量的一个副本。

返回引用,内存中不会产生返回值的副本

这两段代码运行结果相同 想求问一下他们的运行机制有什么不一样呀 谢谢大神!