C语言交换变量的问题?

测试环境:vs2013
代码如下

# include<stdio.h>
# include<stdlib.h>
int main()
{
    int a = 1;
    int b = 2;
    int t = 0;
    //法1
    t = a; 
    a = b; 
    b = t; 
    printf("a=%d b=%d t=%d\n", a, b, t);
    //输出结果 a=2 b=1 t=1
    a = 1; //重新给a b t赋为原来的值
    b = 2;
    t = 0;
//法2
    t = b;
    b = a;
    a = t;
    printf("a=%d b=%d t=%d\n", a, b, t);
    //输出结果 a=2 b=1 t=2
    system("pause");
}

关于两个变量之间交换值的问题,我用了一个t变量来做交换变量的临时中转站,
发现无论是先把a 或b 放在中转站里面都不会影响最后的结果,影响的只是t的值,
法1和法2就只有这些差别吗?请问我说的对不对呢?
求吐槽!

查看全部
claysystem
r4bbit
2015/06/07 08:43
  • system
  • c
  • 输出结果
  • printf
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

12个回复