请大神帮忙解释一下下面代码可以将 A 和 B 的值交换的原因?本人小白,实在想不出来

#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
a=b-a;
b=b-a;
a=b+a;
printf("%d %d",a,b);
system("pause");
return 0;

2014-06-29 16:36
2014-06-29 17:29
2014-06-29 17:34
2014-06-29 17:34
2014-06-29 19:12
2014-06-29 21:32
2014-06-30 09:01
2014-06-30 09:03
2014-06-30 09:03
2014-06-30 09:19