A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pingfan183 中级黑马   /  2014-11-1 23:20  /  1271 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

第一种:int a,b,c

a=b-a
b=b-a
a=a+b
第二种:

int a,b,c

a=b^a
b=b^a
a=a^b

第三种:
int a,b,c,temp;
int temp=a;
a=b;
b=temp;

3 个回复

倒序浏览
好吧 支持一下先....
回复 使用道具 举报
利用指针交换两个变量
#include <stdio.h>

int main()
{
    // 两个变量的起始值a为10 b为11
    int a = 10;
    int b = 11;
    // 定义3个指针
    int *p1, *p2, *temp;
   
    // p1,p2分别存储a,b的地址
    p1 = &a;
    p2 = &b;
   
    // 利用中间指针交换a,b的值
    temp = p1;
   
    p1 = p2;
   
    p2 = temp;
   
    // 输出结果
    printf("交换之后a=%d,b=%d\n", *p1, *p2);
   
    return 0;
}

还有别的方法吗?
回复 使用道具 举报
用个中间变量,tmp, 把其中的一个赋给中间变量,,或者用数学方法,a=a+b;b=a-b;a=a-b;  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马