C语言——交换两个int变量的值,不能使用第三个变量。

 交换两个int变量的值,不能使用第三个变量。即 a=3,b=5,交换之后a=5,b=3;

#include
int main()
{
    int a=3;
    int b=5;
    printf("a=%d b=%d\n",a,b);
    a=a^b;
    b=a^b;
    a=a^b;
    printf("a=%d b=%d\n",a,b);
}

“^”——按位异或操作符,这里的按位的位指的是操作数二进制的位,相同为0相异为1.

3的二进制位为:0000 0000 0000 00011

5的二进制位为:0000 0000 0000 00101

注:

1、任何数按位异或自己本身都为0

int a=3;
a^a=a;

2、0与任何数按位异或都为异或的那个数

int a=3;
0^a=a;

C语言——交换两个int变量的值,不能使用第三个变量。_第1张图片

输出的答案:

你可能感兴趣的:(C语言例题,java,算法,数据结构)