首先,C语言是以传值的方式将参数值传递给被调用函数的,这里的传值,可以理解为只是将一个副本传递给了被调函数,因此主调函数的值不会因为被调函数的操作而发生改变。那么如何让主调函数的值也随之改变呢?

直接让主调函数将要改变的变量的指针传递给被调函数!这里就需要使用一个取地址符。 例如:

int swap(int x,int y){
int temp;
temp = x;
x = y;
y = temp;
}

我们调用这个函数:

swap(x,y);

无法改变主调函数的值,要想改变只需要

swap(&x,&y);

此时,swap函数接受的参数值的类型发生了改变,由原来的整型,变成了指针型,即需要将swap()函数中的参数类型修改为:

swap(*x,*y);

swap函数也需要修改为:

int swap(int *x,int *y){
int temp;
temp = *x;
x = *y;
y = temp;
}