关于C语言printf函数的易错点

截取了这样一段代码:

int a=1;
printf("%d,%d",++a,a);

会输出什么呢?
答案不是2,2,而是2,1
原来printf函数是同赋值变量具有右结合性的,而这在教材中鲜少提到。