首先,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;
}