C 没有得到指针的这种行为
但在这种情况下,输入:C 没有得到指针的这种行为,c,pointers,C,Pointers,但在这种情况下,输入:45 输出:94 我认为产出应该是一样的。请解释为什么输出不同。在此版本中 *a = *a + *b; *b = abs(*a - *b); *a = *a + *b; *b = abs(*a - *b); *a的新值用于行*b=abs(*a-*b) 另一方面,在这个版本中 *a = *a + *b; *b = abs(*a - *b); *a = *a + *b; *b = abs(*a - *b); 这两种计算都使用原始值*a和*b 这就是输出不同的原因。使用调
45
输出:94
我认为产出应该是一样的。请解释为什么输出不同。在此版本中
*a = *a + *b;
*b = abs(*a - *b);
*a = *a + *b;
*b = abs(*a - *b);
*a
的新值用于行*b=abs(*a-*b)代码>
另一方面,在这个版本中
*a = *a + *b;
*b = abs(*a - *b);
*a = *a + *b;
*b = abs(*a - *b);
这两种计算都使用原始值*a
和*b
这就是输出不同的原因。使用调试器单步执行程序并查看所有变量。-你需要纸和笔。您不需要计算机如果在更改*a
之前不存储旧值,则会丢失它。故事结束了。这就是x
所做的。您的问题与指针无关第一个版本与第二个版本中调用abs(*a-*b)
时*a
的值是多少?