新手继续简单小程序,求解释解决办法

新手继续简单小程序,求解释
程序:
int k=0, n=2;
while(k++&&n++>2)
printf("%d %d\n", k, n);

输出是:1, 2.
为什么不是1, 3呢?纳闷,单步调试也没发现,猜测是运算符的优先等级问题,
我在while语句后面加了:{a=k; b=n;printf……},就看到a=1,b=2,求解释,谢谢~~

------解决方案--------------------
探讨
引用:

vs2008下调试通过,什么都不显示,因为你k先得0,根本不会进入while,所以不会有输出,楼主是不是把题目抄错了啊。。。

没有抄错,我用C-Free的,出结果了,看来真的有必要上图了,不然大家都不相信哇

------解决方案--------------------
int k=0, n=2;
while(k++&&n++>2); //注意这个地方的分号
printf("%d %d\n", k, n);
return 0;

加个分号,就输出1,2