2015-10-15 53 views
0

我正在阅读Scott Meyrses C++,现在是关于passing-reference-to-const的部分。他说,对于用户定义的类型,通过reference-to-const传递它几乎总是很好,与内置类型不同。按值传递基元

我的问题是为什么内置类型应该通过值传递。为什么它更有效率?我认为,他们可以进入登记册,但这是唯一的原因吗?

+2

通过引用传递或传递指针是一种额外的间接方式。在没有优化的地方,有指针解引用来使用该值,而用于复制指针的内容并不比仅仅复制该值本身小。 –

回答

5

当你传递一个引用时,它在后面传递一个指针。这比通过可能非常大的整个结构更有效。

原始类型的大小与指针大小相同(最坏的情况下它们可能是原来的两倍)。有些甚至更小 - 一个char是1个字节,而指针通常是4或8个字节。所以通过引用而不是传递价值本身并不能获得效率。