值传递在函数调用过程中,函数内部将参数拷贝一份,而并不改变元参数的值。而指针传递,才在函数内部改变传入参数的值。如果你要传入的参数是指针,可以改变的是指针指向的具体内容的值,而你如果要在函数内部改变指针的值,你需要传入的是指针的地址,也就是指针的指针。将你的Change函数的参数改为(int **p, int **q), 然后再调用的时候改为change(&p, &q)即可。
希望对你又帮助。
形参和实参的问题啊
void exchange(int a, int b)
{
int t=a; a=b; b=t;
}
调用结束a和b的值换了么?
void change(int *p,int *q)
{
int *pointer;
pointer=p;
p=q;
q=pointer;
}
不过是把int类型换成了int* 类型而已