这个问题难点在于算法,不创建新的临时变量交换两个数.只有把两个数相加,赋值给其中一个再把另一个减去如此一来就实现了交换数值. 核心算法 a=a+b b=a-b a=a-b 代码如下: #include<stdio.h> int main() { int a=1,b=2; printf("交换前a=%d,b=%d\n", a, b); a = a + b; b = a - b; a = a - b; printf("交换后a=%d,b=%d",a, b); return 0; } 运行结果: