Differenct between return by value and by reference

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Consider the following code:

//==================================

1 int max( int& n1, int& n2 )

2 {

3 if(n1>n2)

4 return n1 ;

5 else

6 return n2 ;

7 }

8 void main()

9 {

10 int x=1, y=2 ;

11 max( x,y ) = 5 ;

}

//===================================

The can not be complier. Because in line 11, a value is returned which is a const. A const cannot be assigned a new value.

However, if we changed the code in line1 to

int& max(int& n1, int& n2)

The code can be complied and exectuted! Because a reference has been returned, which is either x or y in the main function. That is, returend reference is a variable. Assign a value to a variable is legal.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航