因为是宏定义。就是把exch(a,b) 简单的替换成{int t;t=a;a=b;b=t;}
#include
main()
{
int x=1,y=2;
{int t;t=a;a=b;b=t;}
printf("x=%d,y=%d",x,y);
}
宏函数替换和函数还不一样函数这样肯定换不了值但是宏函数你在编译的时候
程序其实给你换成这样了
#define exch(a,b) {int t;t=a;a=b;b=t;}
#include
main()
{
int x=1,y=2;
int t=x;x=y;y=t;
printf("x=%d,y=%d",x,y);
}
不懂继续问
程序执行到exch(x,y)时,调用第一行函数,x,y换值