Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 没有得到指针的这种行为_C_Pointers - Fatal编程技术网

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
的值是多少?