请教一个关于引用变量的问题!!!
一个函数可以返回一个引用变量吗?下面的代码中为什么能运行啊????
[code=C/C++][/code]
char & operator [](int i)
{
static char ch=0;
if(i<Length&&i>=0)
{
return Buff[i];
}
else
{
cout<<"\nIndex out of range";
return ch;
}
}
[解决办法]
楼主将以前的帖子结了 帮助你的人会多点~ ~
不能返回的是临时变量的引用。
[解决办法]
你这里定义的是一个局部静态变量。
局部静态变量的作用域是局部的,但生命周期是全局的,不会随着函数返回而消逝。
所以你返回它是没错的。
如果去掉static声明,就不对了,那时应该返回值,而不是引用。