#include <stdio.h>
void changeData(int *pdata1,int *pdata2){
int temp;
temp = *pdata1;
*pdata1=*pdata2;
*pdata2=temp;
}
int main()
{
int data1 = 10;
int data2 = 20;
printf("交换前:data1=%d,data=%d\n",data1,data2);
printf("交换前:p1=%p,p2=%d\n",&data1,&data2);
changeData(&data1,&data2);
printf("交换后:data1=%d,data2=%d\n",data1,data2);
printf("交换后:p1=%p,p2=%d\n",&data1,&data2);
return 0;
}
可以发现,通过指针交互两个数后,并不影响两个值得地址,是通过指针访问主函数的两个值得地址,间接的交换两个值,指针就是指向地址