【发布时间】:2016-09-27 08:52:29
【问题描述】:
我了解返回对函数的局部变量的引用是未定义的,例如:
int& returnIntRef_One()
{
int value = 5;
return value;
}
但是,在这个函数中:
int& returnIntRef_Two()
{
int i = 5;
int &value =i;
return value;
}
该值似乎返回正常。
谁能解释一下有什么区别?
谢谢
【问题讨论】:
-
未定义的行为
-
两个sn-ps是相等的,第二个只是给编译器增加了一些提示
-
“将 Ref 返回给局部变量”... 是不行的,除非该变量已声明为
static。
标签: c++ reference pass-by-reference