毕万 2023-11-15 18:23 采纳率: 76.9%
浏览 2
已结题

关于#c语言#的问题,请各位专家解答!

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

img

  • 写回答

2条回答 默认 最新

  • 创意程序员 2023-11-15 19:53
    关注

    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月25日
  • 已采纳回答 11月17日
  • 创建了问题 11月15日