#include <stdio.h> #define SWAP(a, b) tmp = a; a = b ; b = tmp int main(){ int a = 10; int b = 20; int tmp = 0; int n = 6; if(n>6) SWAP(a,b); printf("%d %d %d\n", tmp, a, b); } 自己觉得if应该不会执行(因为没有缩排) 然后只执行SWAP那行 所以是 10 20 10 但是在vscode上编译出来的结果是 0 20 0 我不太懂为什么会这样 麻烦大神开示 谢谢