C++的函数的参数调用是传值方式. 想要改变传值调用,有引用和指针两种方式.其中,引用的实现机理也是通过一个指针,但是具体和指针传值的方式又不一样.具体见:C++中的指针与引用 对于指针传值,其实实际上也是一个值传递,只是这个值是地址.所以在函数中改变*p的值,相应的调用函数的值也会改变.但是最近在做一点数据结构方面的东西,发现总是会出现以下错误. struct list { int value; list *next; } void ListInsert(int x,list *head) {