请问大家为什么这个程序运行结果不是“x=-1,y=3”,而是“x=-1,y=1”???

图片说明

#include
#define FOR while(x--);
void main(){
int x=3,y=0;
FOR
{
y=y+1;
printf("x=%d,y=%d\n",x,y);
}
printf("x=%d,y=%d\n",x,y);

}

因为多了分号,所以循环体是空的。

因为多了分号,所以循环体是空的。

#include
#define FOR while(x--)//分号去掉
void main(){
int x=3,y=0;
FOR
{
y=y+1;
printf("x=%d,y=%d\n",x,y);
}
printf("x=%d,y=%d\n",x,y);

}

#include
#define FOR while(x--)
void main(){
int x=3,y=0;
FOR
{
y=y+1;
printf("x=%d,y=%d\n",x,y);
}
printf("x=%d,y=%d\n",x,y);

}