在给函数提供原始变量时,最好的做法是:
unsigned long x = 4;
void func1(unsigned long& val) {
val = 5;
}
func1(x);
Run Code Online (Sandbox Code Playgroud)
要么:
void func2(unsigned long* val) {
*val = 5;
}
func2(&x);
Run Code Online (Sandbox Code Playgroud)
IOW:有没有理由选择一个而不是另一个?
我是C++编程的新手,但我有Java经验.我需要有关如何将对象传递给C++中的函数的指导.
我是否需要传递指针,引用或非指针和非引用值?我记得在Java中没有这样的问题,因为我们只传递了保存对象引用的变量.
如果您还可以解释在哪里使用这些选项,那将会很棒.
当c ++编译器为引用和指针生成非常相似的汇编代码时,为什么使用引用优先(并且认为比指针更安全)?
我确实看到了
编辑-1:
我正在查看g ++为这个小程序生成的汇编程序代码:
int main(int argc, char* argv[])
{
int a;
int &ra = a;
int *pa = &a;
}
Run Code Online (Sandbox Code Playgroud)