交换指针是不行的,要交换指针指向的内容
因为指针本身是值参,函数调用时和普通类型变量一样,其实函数都会复制一份临时变量来使用,已经不是传入的指针本身所存储的位置了
交换时前面加*,否则数值没变
#include <stdio.h>
void swap(int *p1, int *p2)
{
int tmp = *p1;
*p1 = *p2;
*p2 =tmp;
}
int main(void){
int i = 3, j = 5;
swap(&i,&j);
printf("%d %d\n",i,j);
return 0;
}
#include <stdio.h>
void swap(int *p1, int *p2)
{
int tmp = *p1;
*p1 = *p2;
*p2 =tmp;
}
int main(void){
int i = 3, j = 5;
swap(&i,&j);
printf("%d %d\n",i,j);
return 0;
}