【发布时间】:2013-04-20 22:10:31
【问题描述】:
void VoidRef (int &ref){
ref++;
}
void VoidPtr (int *ptr){
(*ptr)++;
}
int test= 5;
VoidRef(test);
cout << test; // is 6
VoidPtr(&test);
cout << test; // is 7 !
为什么两个虚空做同样的事情? 哪个虚空需要更多资源?
【问题讨论】:
-
是的,它们都做同样的事情(尽管我会选择第一个,因为它涉及实现一种侵入性较小的语法)。
-
引用通常在底层实现为指针,因此在资源方面它们应该是相同的。一般的参考文献应该是首选。
-
使用引用的主要优点 (IMO) 是不可能意外传递空指针或其他无效指针。
-
它们被称为“函数”,而不是“空隙”。函数声明中的“void”表示函数不返回任何内容。是的,指针和引用非常相似。
标签: c++ pointers parameters reference