int a=10,b=20;
printf("%d %d %d %d\n",a++,--a,b--,++b);
//9 10 21 20
分析:从右到左运算,
++b b变21 但b的值要等前面运算完后才拷贝b的值
b-- --在后面,先拷贝b的值21 b再自减为20
--a a自减变为9 但--在前要等前面的运算结束后才拷贝a的值
a++ 先拷贝a的值9 a再自加变为10
运算表达式结束了,此时拷贝--a这个参数的值10,再拷贝++b参数的值20
所以结果为 9 10 21 20
printf首先是将参数从右到左读入队列中,所以参数从右开始运算
若是--或++在后,直接先取值再运算
若--或++在前,则会先计算该变量前所以的表达式,包括逗号运算符,最后再返回变量的值
最后打印队列