按值传递基元

Passsing primitives by value

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

我的问题是为什么内置类型应该按值传递。为什么效率更高?我认为,它们可以放入寄存器中,但这是唯一的原因吗?

当您传递一个引用时,它实际上是在传递一个指针。这比传递可能非常大的整个结构更有效。

基本类型的大小都与指针大致相同(最坏的情况下它们可能是指针的两倍大)。有些甚至更小——char 是 1 个字节,而指针通常是 4 或 8 个字节。因此,通过引用传递而不是传递值本身不会提高效率。