值传递、引用传递、地址传递辨析
2017-06-18 14:46
323 查看
写在前面:
其实这是大一的知识,但是很久了也有一点淡忘,加上复习编译原理又捡起来看了看,写个简单的程序帮助理解吧。值传递、引用传递、地址传递:
#include<iostream> //值传递 int get_val(int arg){ arg+=1; return arg; } //引用传递 int get(int &arg){ arg+=1; return arg; } //地址传递 int get(int *arg){ *arg+=1; return *arg; } //入口 int main(){ int a=0; int b=0; int c=0; get(a); std::cout<<" 引用传递 -->原变量"<<a<<std::endl; get_val(b); std::cout<<" 值传递 -->原变量"<<b<<std::endl; get(*c); std::cout<<" 地址传递 -->原变量"<<c<<std::endl; }
程序输出:
引用传递 -->原变量1 值传递 -->原变量0 地址传递 -->原变量
解析:
值传递只是将变量地址中存放的值赋给了新开辟的局部变量。引用传递,引用其实是变量的别名,就像 小明在学校叫 王小明,在家里叫明明一样,都指的是小明这个人。我在路上叫明明或者王小明他都会答应。 引用传递实际上是将原变量作为局部变量放入了函数中
地址传递是将原变量的地址作为参数传入函数,对地址的相关操作其实作用在原变量上
相关文章推荐
- 值传递、地址传递、引用传递(参考网上各种资料总结哦~)
- java 值传递与地址传递(引用)的区别
- Java中, 不存在引用传递(也就是地址传递)一说, 全部都是值传递
- 汇编分析参数传递中的地址传递与值传递的区别(指针,引用,值传递)
- 值传递,地址传递与引用传递
- 值传递,地址传递与引用传递
- 值传递/地址传递/引用传递的区别【转】
- 值传递,地址传递,引用传递
- java 值传递及地址传递(引用传递)
- 值传递与引用传递 实例
- java中到底是值传递还是引用传递?
- 关于值传递指针传递和引用传递
- JS是按值传递还是按引用传递
- 按值传递还是按引用传递
- call by value 和call by reference 部分转载 java 值传递 和 引用传递
- c语言值传递,地址传递,引用传递(引用传递只适用于c++)
- 按值传递&&按引用传递&&按地址传递
- java 值传递 和 引用传递
- c语言值传递,地址传递,引用传递
- java方法中只有值传递,没有引用传递