在C语言中的 交换指针地址问题

2025-05-14 15:40:40
推荐回答(2个)
回答1:

值传递在函数调用过程中,函数内部将参数拷贝一份,而并不改变元参数的值。而指针传递,才在函数内部改变传入参数的值。如果你要传入的参数是指针,可以改变的是指针指向的具体内容的值,而你如果要在函数内部改变指针的值,你需要传入的是指针的地址,也就是指针的指针。将你的Change函数的参数改为(int **p, int **q), 然后再调用的时候改为change(&p, &q)即可。
希望对你又帮助。

回答2:

形参和实参的问题啊

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* 类型而已