首先明确只要是值传递,编译器就会创建参数的副本,即使是指针也会创建一个指针的副本,但这两个指针的地址(指向这两个指针的指针)是不同的。
因此在函数参数为指针时,两个指针虽然最开始指向同一地址,但一旦给副本的指针new一个内存单元,副本的指针就不再指向原来的地址,而是指向新的内存单元。从而导致原本指针的内容根本没变。而不是“理所当然”的两个指针指向同一个,所以改了这个另一个也会变。
因此,可以通过传入指针的指针来解决
同样,可以用指针的引用来解决
若有错误欢迎指正
首先明确只要是值传递,编译器就会创建参数的副本,即使是指针也会创建一个指针的副本,但这两个指针的地址(指向这两个指针的指针)是不同的。
因此在函数参数为指针时,两个指针虽然最开始指向同一地址,但一旦给副本的指针new一个内存单元,副本的指针就不再指向原来的地址,而是指向新的内存单元。从而导致原本指针的内容根本没变。而不是“理所当然”的两个指针指向同一个,所以改了这个另一个也会变。
因此,可以通过传入指针的指针来解决
同样,可以用指针的引用来解决
若有错误欢迎指正