在C ++中通过引用传递基本数据类型(int,float,double,bool)有什么速度优势吗?
答案 0 :(得分:2)
没有。
AFAIK ...参考工作方式是编译器将发送传递参数的内存地址,而在另一端你有一个任何类型的变量,其内存地址与发送变量相同。所以它基本上是完全相同的变量,你只是在不同的范围内修改它。
发送大对象的速度更快的原因是因为这意味着你只需要发送对象的内存地址(或发送指针),这比复制整个(大)对象要小得多(和可能的)。但是,指针通常与基本数据类型的大小相同,甚至更大,因此传递它不会为您节省任何速度。
答案 1 :(得分:1)
不,可能(对于天真的实现)反过来。非天真的实现将简单地忽略(可能是const)引用,天真的(如果存在的话)将需要额外的解引用操作,