使用指针更改主调函数里的变量
形参其实是在把实参传递给子函数的时候定义了一个新的变量,但是这个变量的值和实参相等。所以在子函数里,无论怎么修改都不会影响到调用它的函数的实参的值。
在用指针做参数的时候,因为传递的不是值本身,而是它所对应的地址,我们改变值的时候是改变那个地址里的值。所以,传递指针的话,就能改变值了。
#include<stdio.h>
int exchange(int *x,int *y) ;
int main(void)
{
int a=5,b=10;
printf("before:a=%d,b=%d\n",a,b);
exchange(&a,&b) ;
printf("after:a=%d,b=%d\n",a,b);
return 0;
}
int exchange(int *x,int *y)
{
int temp;
temp=*x;
*x=*y;
*y=temp;
return 0;
}