关于C语言”^"符号的提问

求问"^"的含义和作用,程序输出5,3.


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

  • ^ 这是 按位异或 操作符,主要是二进制数 每位比较,如果 不相同【1^0 = 1 , 0^1 = 1】,结果就是 1, 如果相同【1^1=0 , 0^0 = 1】,结果就是 0
  • 针对你这里,首先 x = 3, y = 5, 它们的 二进制数 分别位 0011, 0101 ;
x = 0011 ^ 0101 = 0110  // 十进制数 就是 6 x = 6
y = 0110 ^ 0101 = 0011 // 十进制数 就是 3 y = 3
x = 0110 ^ 0011 = 0101 // 十进制数就是 5 x = 5
//  最后输出 5,3

知识点: 除了使用临时变量进行交换, 使用 异或 ,也是实现 两个数交换的一种方式。