问题 填空题

下列程序编译错误,因为add函数返回值是一个引用,故对return返回值的要求是______。 #include<iostream.h> int& add(int x,int y) { return x+y; }void main( ){ int i=3,j=19; cout<<(add(i,j)+=20)<<endl; }

答案

参考答案:不能是表达式

解析: 引用是变量的别名,其实质是变量的地址。return在返回值时,如果其后为表达式,则系统为该表达式生成一个临时变量用于存放该表达式的结果,函数执行完毕之后该变量被系统回收,因此,返回的该变量的地址对调用函数来说已经没有意义了。

单项选择题
多项选择题 案例分析题