关于引用,有一件事我一直不太理解,希望你能帮我解答。据我所知,引用不能为null。但是如果你有一个函数foo()返回一个指向堆栈对象的引用,会发生什么: Object & foo(){ Object o; return o; } Object & ref = foo(); 理论上的引用会指向一个不存在的对象,因为o在函数返回时就超出了其作用域。这里发生了什么?
这将导致未定义的行为。不要这样做。 就实现而言,实际上,引用会指向调用 foo 的堆栈帧所在的堆栈,那个内存在许多情况下仍然是有意义的,因此错误通常不会立即显现。因此,您应该注意永远不要创建类似于悬空引用的东西。
null
。你只是不能直接引用null
。 - Konrad