初学者关于指针的问题
为什么在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;
} 虽然我也觉得多此一举;不过应该是为了学习,练习而已。。知道怎么回事就行了。
这代码应该是哪个学生自己写出来的吧 地址的交换比较危险,
一般来说都不应该随便操作地址,而是操作地址里面存放的东西
页:
[1]