http://topic.csdn.net/t/20050310/11/3839506.html http://topic.csdn.net/u/20080905/10/ca32bacb-6d6d-4996-9e12-c4b61cdabb44.html 两者的处理方式是不同的, 当返回局部对象的值时,会产生一个临时对象,局部对象将值拷贝给该临时对象, 所以当函数结束时,尽管局部已经析构了,但是它保存了一个副本在临时对象中,当函数接收完局部对象的值后(其实此时又进行了一次拷贝) 临时对象析构。 但返回局部对象的引用时,就出问题了,因为引用相当于是一个别名,也就是说返回局部引用所对应的内存快的内容给函数返回的接收对象,当函数 结束时,局部对象被析构,内存块的内容变为未定义内容,所以出错。