Mob*_*ent 0 c++ memory optimization pointers reference
我有一个简单的问题.这是我的C++代码:
#include <iostream>
using namespace std;
void example(const int someArgument)
{
cout << someArgument << endl;
}
int main()
{
int someArgument = -1;
example(someArgument);
}
Run Code Online (Sandbox Code Playgroud)
运行example(someArgument)
是在内存中复制someArgument
还是仅将地址传递给变量?我假设编译器"知道"我不会通过使用const关键字来修改它,因此不需要进行复制.我错了吗?
你正在传递价值,是的,它会复制.
如果您不想复制,请通过指针或引用传递参数.但是,在这种情况下,您传递一个int,所以我不担心按值传递.
我的经验法则是按值传递基本类型,如果可能的话,通过const引用传递所有其他类型.