1 所有的参数传递,都是传递值的拷贝。
2 C传指针进去,其实也是把这个指针值按拷贝传送进去。但是因为指针值指向一块外部内存空间(其实更多是堆空间,或外层栈变量空间),所以感觉可以在函数里改变外部变量。其实本质还是按拷贝传递,只是传递进去的是一个访问变量的渠道。
这里理解为:如果想通过方法对值进行操作,不能直接传值,传值的话是对拷贝做的操作,方法结束后拷贝就消失,原值不变。而正确的方法是将指向值的指针传进去,指针和指针的拷贝(都是地址)所指向的都是同一个值,你对地址里的值进行操作,即使方法结束,值也会改变。
代码参考:https://blog.csdn.net/gl486546/article/details/53375999