你这个好乱,首先①对swap函数的声明要放在main函数外面;②你是把p1和p2作为实参传入函数swap,进了函数后,两个的值就赋给了*m, *n,然后你在函数里定义了两个int变量p, q(和那俩指针*p,*q不是一个东西,建议命名为x, y啥的也好啊,不要给自己找麻烦),然后这俩int变量是空的啊,想要赋值,是谁给谁赋值你要搞清楚,现在是p,q要获取*m,*n的值,所以p = *m; q=*n;(= 表示右边的值赋给左边的变量,记住)。或者你不要定义int变量,直接*m,*n作比较就好了啊。很多基础性的东西,你还要搞懂。如有帮助,记得点采纳~
你swap写的什么?参数m和n才是有意义的,p和q是临时变量,为什么你没有初始化的临时赋值给了参数m和n呢?