指针传递也属于值传递!
因为指针本质就是个地址变量,所以指针传递的参数也是个变量!
同时需要注意的是,指针传递是把地址变量复制一份再传递给函数的!
而引用传递是把本体传递给函数,并没有通过复制!
代码:
输出结果:
注意:
指针传递的函数里面的变量a由于和main函数的作用域不同,属于两个不同的变量。
可以清晰地看到:
指针传递的实参在函数内部该改变了指向,改变了函数内输出时的结果,但是丝毫不影响main函数的输出结果,因为传递过去的地址变量是个复制品。
而引用传递的地址,从头至尾都没有发生改变,因为引用即是其本身,相当于变量自身的别名,也因为这个特性:一旦引用被初始化为一个对象,就不能被指向到另一个对象,使得不用担心引用被改变。