C++(www.cppentry.com)函数返回值:
(1)正常情况下,函数的参数要复制一份在函数中应用,返回时,再将返回值复制一份,传出去,然后释放掉局部变量.当函数的参数是引用类型的时候,函数就不会复制一份了.
(2)对于函数中新建的局部对象是不可以返回的,因为返回时是复制了局部对象的首地址返回,但是函数执行完,局部对象要释放,这时那个引用就指向错误的地方了.
(3)如果指针指向的内存是在函数内的栈上分配的,那么返回时,肯定不行,因为销毁了.
(4)如果指针指向的内存是在函数外分配的,指针只是作为参数传递进函数内的,那么该指针是可以返回的,因为那块内存没有销毁.
(5)如果指针指向的内存是在堆上分配的(malloc或者new),那么指针也可以返回,因为堆分配的内存是不随着函数消亡的.