#define FOR while(x--) int x=3,y=0; FOR {y++; } printf("x=%d
来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/06/11 13:48:45
#define FOR while(x--) int x=3,y=0; FOR {y++; } printf("x=%d,y=%d",x,y);为什么x=-1,y=3呢?
x等于0时,循环不就停止了吗?
x等于0时,循环不就停止了吗?
宏在编译的时候,会直接替换为代码,展开之后如下:
int x=3,y=0; while(x--){ y++;}
printf("x=%d,y=%d",x,y);
while(x--)中,先进行判断操作,后进行--操作,但是即使x==0时,while(x)为假,注意这时还有一次x--操作
综上所述,while循环有3次,x--有4次,故答案为x=-1,y=3
int x=3,y=0; while(x--){ y++;}
printf("x=%d,y=%d",x,y);
while(x--)中,先进行判断操作,后进行--操作,但是即使x==0时,while(x)为假,注意这时还有一次x--操作
综上所述,while循环有3次,x--有4次,故答案为x=-1,y=3
#define FOR while(x--) int x=3,y=0; FOR {y++; } printf("x=%d
void main() { int x=0,y=5,z=3; while() printf("%d,%d,%d\n",x
int x=3,y=4; printf("%d,%d",(x.y),(y,x));
main() { int x=10; int y=x++; printf("%d,%d\n",(x++,y),y++);
main() {int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d %d",x
、 #define M(x,y,z) x*y+z main() { int a=1,b=2,c=3; printf("%
# define MA(x,y) (x)*(y) int i=2; i=3/MA(i,i+2)+5; printf(“%
# define M(x,y,z) x*y+z main() { int a=1,b=2,c=3; printf("%d
#define M(x,y,z) x*y+z main() { int a=1,b=2,c=3; printf(“%d\
#define MOD(a,b) a%b int x=3,y=20,z; z=MOD(y,x); printf("%d\
main() { int x=10,y=10,i; for (i=0;x>8;y=++i) printf("%d %d
#include main() { int x=1,y=3; x=9-(--y)-(--y); printf("%d",