代码如截图:
总结:
printf 多参数中有运算时 是从右到左执行的;
i++ 和 ++i 优先级是大于 赋值 =运算的; i++ 和++i 是平级的;
i++ 先用在算,++i 先算在用;
从右往左的过程:运算的先算,碰到只是赋值的 跳过执行下一个运算。
解说:
说明第一个printf:从右往左
第四个参数 i++ 先用(输出i为2),后加 i变成3=>
碰到第三参数 赋值 i 不管,跳到第二个运算参数 ++i,先算后用,i变成4,这个时候还没有用(即没有输出)=>
跳到第一个运算参数i++,先用(输出i为4),后加 i变成5 =>
然后到 第 2 3 个参数直接用i,这个时候 i都是5,都输出5 ,SO:输出的为 4,5,5,2。
说明第三个 printf :
第四个赋值 i 不执行,跳到第三个运算参数 i++,输出2 ,i变成了3=>
跳到了第二个运算参数i++,输出3,i变成了4 =>
跳到了第一个运算参数++i, 先运算i变成5 ,输出5 ,=> 剩余 第四个参数输出 i的值,输出5;
so: 5 3 2 5