以下程序运行结果______________.
#include<stdio.h>
#include<conio.h>
#define PR(a) printf("%d",(int)(a))
#define PRINT(a) PR(a);putchar('\n')
#define PRINT2(a,b) PR(a);PRINT(b)
#define PRINT3(a,b,c) PR(a);PRINT2(b,c)
#define MAX(a,b) (a<b?b:a)
void main() {
int x = 1, y = 2;
PRINT3(MAX(x++, y), x, y);
PRINT3(MAX(x++, y), x, y);
getchar();
}
本体疑难点:当运行第二次PRINT3的时候,x=y=2,要执行x++<y?y:x++,该表达式可以用if语句替换:
if(x++<y)
y;
else
x++;
本题运行结果: