mnb*_*vxz -1 c swap pointers function
我是新手,现在正在学习指针.我遇到了这个问题:
功能1:
void swap(int *x, int *y)
{
int *p;
*p=*x;*x=*y;*y=*p;
}
Run Code Online (Sandbox Code Playgroud)
功能2:
void swap(int *x, int *y){
*x=*x+*y;*y=*x-*y;*x=*x-*y;
}
Run Code Online (Sandbox Code Playgroud)
我知道函数2可以很好地交换两个变量,但函数1不能.为什么?感谢您的回答.:)
在function1中,您使用的指针p未指向有效地址.你这里不需要指针:
void swap(int *x, int *y)
{
int p;
p=*x;*x=*y;*y=p;
}
Run Code Online (Sandbox Code Playgroud)