这个是一个典型问题了。从主函数的描述来看,你是想通过f函数改变*p的值然后输出。可是你的函数f对指针p进行赋值的操作不能传到主函数中的指针p中。f中的p是一个局部变量,通过f(p)这一步它只是获得了主函数中p的初值(其实初值也是乱码,你主函数定义p没有赋初值,建议不要这样做),事实上这两个p不是同一个变量。仔细观察会发现你的函数f只是对f中的p进行了赋值操作,并没有对主函数中的p进行操作。所以主函数中的p值没有发生改变。加上你没赋初值(重要),我认为你的系统应该提示的是指针p的值错误。
改的方法可以采用return的方式,或者传递参数的时候使用2级指针进行地址操作都是可以的。先说个大概方法,不明白还可以问我。
1. 要在函数内改变指针指向的对象,函数参数需要时 int** p
2. 函数内部的临时变量,不能通过指针的返回,因为函数结束,number就销毁了