[size=medium]
(1):返回临时变量的引用。
getString()返回时, str也被销毁了, 所以是引用着一个已被销毁的变量.
(2)函数参数上使用引用时,参数传入了NULL
(NULL不是c++的关键字, NULL一般是0的宏), 编译时并不会错误, 但在运行时就会直接闪退, 因为引用了一个无效的东西.
[/size]
(1):返回临时变量的引用。
std::string & getString()
{
std::string str("text");
return str;
}
getString()返回时, str也被销毁了, 所以是引用着一个已被销毁的变量.
(2)函数参数上使用引用时,参数传入了NULL
void print(std::string & str)
{
std::cout << str << '\n';
}
int main(void)
{
print(NULL);
return 0;
}
(NULL不是c++的关键字, NULL一般是0的宏), 编译时并不会错误, 但在运行时就会直接闪退, 因为引用了一个无效的东西.
[/size]