【发布时间】:2017-09-14 10:56:06
【问题描述】:
我有一个简单的问题。这是我的 C++ 代码:
#include <iostream>
using namespace std;
void example(const int someArgument)
{
cout << someArgument << endl;
}
int main()
{
int someArgument = -1;
example(someArgument);
}
运行example(someArgument) 是在内存中复制someArgument,还是只将地址传递给变量?我假设编译器“知道”我不会使用 const 关键字对其进行修改,因此不必进行复制。我错了吗?
【问题讨论】:
-
这有点像伪代码,忽略它。
-
参数的
constness 不会影响是否复制。它被价值所采用的事实是复制的原因。 -
@MobileDevelopment 不要意外修改值。
-
@MobileDevelopment
const和 const-correct 编程是重要的错误缓解工具,并且在某些情况下有助于编译器优化。当您犯某些容易错过的错误时,它们允许编译器对您大喊大叫。它还有助于为其他程序员或未来的自己生成更具表现力的代码。
标签: c++ pointers memory optimization reference