传值
传值的本质是在形参位置(调用处)复制一份相同内容给被调用函数对应位置的实参,所以实参会在本帧(本函数)的堆栈上重新开辟一块空间存储这一复制值。
指针
传递指针本质上也是传值,只不过这个值是一个地址值,这个地址值就是存储实际内容的内存地址。基于此,再按照传值的过程去理解,就很明确了,被调用函数会在堆栈上重新开辟一块内存空间存储被传递过来的地址值。
引用
传递引用,是更为高级的方式,被调用函数不会在堆栈上重新开辟一块空间存储引用,当被调用函数用到引用值时,会直接找到存储引用值的唯一地址。我们可以理解引用的机制是同一个内存空间被多个标签绑定。
默认值
默认参数通常写在其他非默认参数的后面,并且要注意函数声明和函数定义中的默认参数有可能发生冲突,不能同时赋默认值。
具体用法见:https://blog.csdn.net/kanglongyao/article/details/47184593
举例
能看懂本篇代码,可以说是对cpp函数各种传值真正理解透彻了。
//main函数位于TestFunc.cpp中
#include "test