c – 作为函数参数引用?
发布时间:2020-12-16 03:14:28 所属栏目:百科 来源:网络整理
导读:我的参考资料有问题. 考虑以下代码: void pseudo_increase(int a){a++;} int main(){ int a = 0; //.. pseudo_increase(a); //..} 这里,变量a的值不会随着它的克隆或副本的传递而增加,而不是自身变量. 现在让我们考虑另一个例子: void true_increase(int a
我的参考资料有问题.
考虑以下代码: 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 = %dn",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 = %dn",a); //output: a = 2 return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Dojo 1.5.0 正式发布
- ruby-on-rails – 如何在Ruby on Rails中实现特定于部分的导
- reactjs – VueJs 2与Vuex vs React with Redux
- oracle 发邮件 存储过程
- 详解Vue+axios+Node+express实现文件上传(用户头像上传)
- c – istream的tellg / seekg无法防止堆栈粉碎(g)?
- ruby-on-rails – 设计 – 自动删除在定义的时间段后尚未确
- 讲解Oracle数据库中结束死锁进程的一般方法
- IT大包大揽或者用户过度依赖IT
- swift – 被忽略的preferredStatusBarUpdateAnimation