我需要对按值/指针/引用传递的一劳永逸的澄清。
如果我有一个变量,例如
int SomeInt = 10;
我想把它传递给一个像
void DoSomething(int Integer)
{
Integer = 1;
}
在我当前将 SomeInt 传递给 DoSomething() 的情况下,我希望 SomeInt 的值根据我们在 DoSomething() 中对其所做的任何事情进行更新,并且在内存和性能方面最有效,所以我不会复制变量? . 话虽如此,以下哪个原型可以完成这项任务?
void DoSomething(int* Integer);
void DoSomething(int& Integer);
我实际上如何将变量传递给函数?前两个原型有什么区别?
最后,如果在类中使用函数
class SomeClass
{
int MyInteger;
public:
void ChangeValue(int& NewValue)
{
MyInteger = NewValue;
}
};
如果我将一个整数传递给 ChangeValue,当我传入的整数被删除时,这是否意味着当我尝试在类中使用 MyInteger 时,它将不再可用?
谢谢大家的时间,我知道这是一个基本的问题,但我不断遇到的解释让我更加困惑。