总结:
TestFunc1值传递,效率低是因为值拷贝开销大
TestFunc2引用传递,效率高是因为避免了值拷贝,直接操作的就是实参a本身
通过上述代码的比较,发现传值和指针在作为传参以及返回值类型上效率相差很大...return n;
}
我们先看看下面代码会输出什么结果?...答案思考:
在Visual Studio上运行这段代码,输出结果是:
Add(1, 2) is :7
这个结果确实是未定义行为,但在某些情况下可能会输出7。...之所以会出现这种情况,是因为Visual Studio的编译器在处理这种未定义行为时可能会做一些特殊的优化或处理,导致在某些环境下能够得到一个看似合理的结果。...但这种行为是不可靠的,因为它依赖于具体的编译器实现细节。在不同的编译器或环境下,输出可能会完全不同。
正确的做法:是要么返回值,要么返回一个在调用者作用域内仍然存在的对象的引用。