通过引用传递VS Pass值

时间:2014-09-13 12:11:31

标签: c++ performance function parameters

我正在阅读this,但现在我对两种传递参数的方式的效率感到困惑。

与传递值相比,本教程告诉我,通过引用传递是快速的“因为没有制作参数的副本”。但是,它还告诉我“取消引用指针(引用)比直接访问它要慢,访问通过引用传递的值比访问值传递的值慢”。

所以这是我的问题:如果通过引用传递比传递值更快或更慢?

谢谢!

1 个答案:

答案 0 :(得分:0)

这取决于传递的变量的大小。

如果它在示例char中,那么制作副本的速度会更快,因为它通常需要1 B,而x32上的引用在x32上可能需要大约4 B, 但是当您传递示例std::string时,情况正好相反 - AFAIK最大string的大小仅受系统架构和硬件的限制。