gpt4 book ai didi

c++ - 常量变量与常量引用

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:45:32 25 4
gpt4 key购买 nike

在某些 C++ 源代码中,我看到可以将表达式结果保存为常量。像这样:

 const int &x = y + 1;

这是什么意思?有这方面的文件吗?我找不到它..


对我来说它似乎等同于:

 const int x = y + 1;

因为程序的结果保持不变。真的是等价的吗?

如果是,为什么该语言允许第一种方式来编写它?看起来很困惑。

如果不是有什么区别?

最佳答案

区别应该是结果是否被复制/移动。在第一种情况下:

const int& x = y + 1;

y+1 的值本质上是作为临时值保存的。然后我们初始化一个引用 x 到这个临时结果。在另一种情况下:

const int x = y + 1;

我们计算 y + 1 并用该值初始化常量变量 x

在实践中,整数不会有明显的区别。如果 y+1 碰巧是一个大型数据结构,例如,一个包含 1MB 数据的类,这可能会产生重大差异。

关于c++ - 常量变量与常量引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19666248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com