交换两个变量的函数

mn

我是新手,现在正在学习指针。我遇到了这个问题:

功能1:

void swap(int *x, int *y)
{
    int *p;
    *p=*x;*x=*y;*y=*p;
}

功能2:

void swap(int *x, int *y){
    *x=*x+*y;*y=*x-*y;*x=*x-*y;
}

我知道函数2可以很好地交换两个变量,但是函数1不能。为什么?感谢您的回答。:)

Yu Hao

在function1中,您使用的指针p未指向有效地址。您在这里不需要指针:

void swap(int *x, int *y)
{
    int p;
    p=*x;*x=*y;*y=p;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章