我的参考资料有问题.
考虑以下代码:
考虑以下代码:
void pseudo_increase(int a){a++;} int main(){ int a = 0; //.. pseudo_increase(a); //.. }
这里,变量a的值不会随着它的克隆或副本的传递而增加,而不是自身变量.
现在让我们考虑另一个例子:
void true_increase(int& a){a++;} int main(){ int a = 0; //.. true_increase(a); //.. }
这里据说a的价值会增加 – 但为什么呢?
调用true_increase(a)时,将传递a的副本.这将是一个不同的变量.因此& a将与a的真实地址不同.那么增加的价值怎么样?
在我错的地方纠正我.
解决方法
请考虑以下示例:
int a = 1; int &b = a; b = 2; // this will set a to 2 printf("a = %d\n",a); //output: a = 2
这里b可以像a的别名一样对待.无论你分配给b,都将分配给a(因为b是对a的引用).通过引用传递参数没有什么不同:
void foo(int &b) { b = 2; } int main() { int a = 1; foo(a); printf("a = %d\n",a); //output: a = 2 return 0; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。