这个为什么输出结果是1,这个i和i++怎么比较,而且为什么把i++换成i+1输出结果就变成-1了,在这里i+1和i++有什么区别

这个为什么输出结果是1,这个i和i++怎么比较,而且为什么把i++换成i+1输出结果就变成-1了,在这里i+1和i++有什么区别

i++这个表达式会先取i的值,然后将i值增加1。
而调用函数时,函数参数会放入栈中,入栈的顺序一般编译器是从右往左。所以f(i,i++)先取i++表达式的值得到2入栈并且i的值变为3,然后取i的值3入栈,函数f得到的参数a为3,b为2。
i+1表达式的值为3,i仍为2,函数f得到的参数a为2,b为3