<pre name="code" class="cpp">#include<stdio.h>
void main()
{
int i,j;
void swap(int*x,int*y);
printf("i = ");
scanf("%d",&i);
printf("j = ");
scanf("%d",&j);
printf("\n");
swap(&i,&j);
printf("i = %d,j = %d\n",i,j);
}
void swap(int*x,int*y)
{
int temp;
temp = *y;
*y = *x;
*x = temp;
}
swap函数中,通过中间变量对*x和*y进行了交换,由于指针*y原来指向j,指针*x原来指向i,再交换的过程中利用指针指向的地址i和j里面的内容通过中间变量temp,实现了i和j的交换。
函数能够修改主调函数的变量,这种情况下,调用者需要向被调用函数提供待设置值的变量的地址(地址就是指向变量的指针),而被调用函数则需要将对应的参数声明为指针类型,并通过它间接访问变量。