【发布时间】:2014-09-12 05:16:15
【问题描述】:
我试图在一些测试中解决这个问题,但后来当我在家里运行它时,它给出了意想不到的答案。 我无法理解这段代码:
#include <stdio.h>
#include <conio.h>
#define swap(a,b) temp=a; a=b; b=temp;
int main()
{
int i, j, temp;
i=5;
j=10;
temp=0;
if( i > j) //evaluates to false
swap( i, j );
printf( "%d %d %d", i, j, temp); //expected output: 5 10 0
getch();
return 0;
}
我得到的输出是:10 0 0
请有人解释它是如何工作的。
【问题讨论】:
-
只是一个建议,避免
conio、getch等 -
好的,我不会经常使用它们。
-
另一个建议是永远不要写这样的宏,它们在很多方面都是不安全的。相反,请使用函数。