fishyu123 发表于 2018-4-18 14:19:42

初学者关于指针的问题

为什么在IF里要改变交换的是地址而不是值呢,我把指针前面都加上*(比如*g = *d),感觉逻辑上也没有问题啊,感觉好晕啊,提取值得地址不是多此一举吗,这样做有什么好处呢

#include <stdio.h>

int main()
{
      int a, b, c;
      int *d, *e, *f, *g;

      printf("请输入三个数:");
      scanf("%d%d%d", &a, &b, &c);

      d = &a;
      e = &b;
      f = &c;

      if (a > b)
      {
                g = d;
                d = e;
                e = g;
      }

      if (a > c)
      {
                g = d;
                d = f;
                f = g;
      }

      if (b > c)
      {
                g = e;
                e = f;
                f = g;
      }

      printf("%d <= %d <= %d\n", *d, *e, *f);

      return 0;
}

ba21 发表于 2018-4-18 14:24:43

虽然我也觉得多此一举;不过应该是为了学习,练习而已。。知道怎么回事就行了。
这代码应该是哪个学生自己写出来的吧

BngThea 发表于 2018-4-18 14:30:01

地址的交换比较危险,
一般来说都不应该随便操作地址,而是操作地址里面存放的东西
页: [1]
查看完整版本: 初学者关于指针的问题