值传递
值传递是最常见的一种方式,就是典型的把实参复制一份传递给形参,函数无法改变实参的值。
地址传递
是把实参的地址传给形参,因为形参和实参对象指向的地址是一样的,所以因此形参指向的对象就是实参的对象。
传地址本质也是值的传递
,传的是地址,值传递特点是被调函数对形式参数的任何操作都是作为局部变量来进行的,不会影响到主调函数的实参的值,但是因为传的是地址,因此其实也在改变了这个地址上的变量。形参和实参实际是相互独立的。
因为是传地址,如果对传进来的指针进行++操作,则不再能改变实参的值
,所以因此很多传递指针的时候会用const进行修饰。
引用传递
引用传递直接将实参的内存地址传给形参 ,没有任何拷贝
,就是两个变量直接指向同一个对象,形参相当于是实参的另外一个别名,因此形参改变,实参也改变。
传指针传的是一个变量值,本质是值传递,而传引用,传进来直接是一个地址,因此形参被当作间接寻址。所以对形参的操作都影响实参。
版权声明:本文为TABE_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。