[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]
本文深入探讨了C++中引用的使用及其在参数传递过程中的常见陷阱,通过实例展示了引用可能导致的问题,并提供了解决方案。主要内容包括引用的基本概念、引用与普通变量的区别、参数传递时引用的误用导致的内存问题,以及如何正确地使用引用以避免潜在的错误。
1万+

被折叠的 条评论
为什么被折叠?



