VS 测试printf 多参数 输出 i++ 和++i 结果

 代码如截图:

   

总结:

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

原文地址:https://www.cnblogs.com/rogge7/p/8534256.html