请教这个k++的结果为什么会这样呢

请问这个k++的结果为什么会这样呢
void main()
{
int k = 0;
int n = 10;
while (n--)
{
printf("k=%d, k++=%d\n", k, k++);
}

system("pause");
 
}

程序结果:

k=1,k++=0
k=2,k++=1
..................
k=10,k++=9

疑问:打印结果不应该 是k=0,k++=0,因为++是在之后赋值的。
------解决方案--------------------
楼主,自己认真去看置顶帖。

------解决方案--------------------
代码是错的 
结果没有意义
看置顶帖的说明 
ps 有输出结果不代表代码是对的 输出结果无法表示确切含义 一样是错的 
------解决方案--------------------
引用:
看了置顶帖啊,是不是说,因为 printf("k=%d, k++=%d\n", k, k++); 这一句并没有出现顺序点,所以C语言随机先计算左边或者右边的都是可以的,所以为了保证正确性,这样的表达式应该 分2段来写。

理解正确,结果是不确定的。