按值传递基元

ste*_*lla 0 c++ types built-in-types

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

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

Bar*_*mar 5

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

原始类型的大小与指针大小相同(最差的可能是指针的两倍).有些甚至更小 - 一个char是1个字节,而指针通常是4或8个字节.因此通过引用传递而不是传递值本身没有获得效率.