关于C++ 传值 地址传递
2014-12-27 15:37
281 查看
</pre><p></p><p><strong>C++传值</strong></p><p>很简单,看例子:</p><p></p><pre name="code" class="cpp">int add(int a, int b) { return a + b; } int main() { int x = 6, y = 2; cout<<"result: "<<add(x,y); system("pause"); return 0; }
输出:result:8
当执行到函数add时候,调用传递的俩个参数值会被复制到函数add本地变量a,b中,最终计算结果return。
这样在执行main方法里面,x,y的值依旧没变。
C++地址传递
看例子:
void doubleValue(int& a, int& b) { a *= 2; b *= 2; } int main() { int x = 6, y = 2; doubleValue(x,y); cout<<"result, x: "<<x<<endl; cout<<"y: "<<y<<endl; system("pause"); return 0; }
输出:result:x: 12
y:4
可以看到数值加倍了,也就是调用doubleValue起作用了。
当按地址传递的时候,我们传递的是这个变量本身,我们在函数中对变量做的任何修改都会影响到函数外面传递的变量。
地址传递是使一个函数返回多个值的方法。个人感觉还是蛮有用的
相关文章推荐
- C++ 中解析关于传值、传地址、传递引用的解析
- 关于函数中传递地址值和结构体的一个小程序
- 关于二级指针的使用测试小例子,仅供测试--参数传递的时候用指针最好,因为压栈的时候指针,只是压入一个地址的值,最多4个字节(32位机上),提供的3个测试例子,基于VC6.0的环境。
- 关于VB数组里面按值传递和按地址传递的区别
- 关于java中是地址传递还是值传递的测试
- C#传递结构体地址(或者结构体成员的地址)给C/C++ DLL
- 关于C#中调用C++dll传递回调函数的问题
- 一个关于按地址传递和按值传递区别的代码,给新手
- 【C++学习点滴】关于参数传递的问题
- C语言中关于地址传递的理解
- 关于C#中调用C++dll传递回调函数的问题
- C/C++中关于地址、指针和引用变量的学习笔记(一)
- C/C++中关于地址、指针和引用变量的学习笔记(六) : const和void
- C/C++中关于地址、指针和引用变量的学习笔记(五) : 指针
- 【C++学习点滴】关于参数传递的问题
- C/C++中关于地址、指针和引用变量的学习笔记(十) : 引用型变量
- C/C++中关于地址、指针和引用变量的学习笔记(四) : 函数
- C/C++中关于地址、指针和引用变量的学习笔记(八) : 命令行参数
- C语言----关于值传递和地址传递
- C/C++中参数传递有两种方式,传值或传地址(传引用)