我们一行一行分析:
for (x = 5; x > 0; x--) //从x=5开始,当x>0的值为false时停止循环。每次循环后x自减。
if (x-- < 5) printf("%d", x); //x--的值就等于x,也就是说第一次是不执行的。这个语句同时也会将x自减。
else printf("%d", x++); //x++的值也等于x,但同时也会将x自增。第一次会执行这个语句,输出为x-1(等于4),因为在判断语句中x自减了。
所以,第一轮输出为4。
第二轮,x因为for循环自减了,此时x-- < 5也已满足,又因为在上一轮循环中加1,因此输出4+1-1-1=2;
第三轮与第二轮相似,不同之处在于没有执行printf("%d", x++),因此x的值减2,输出1