黑马程序员技术交流社区

标题: #C语言问题#为什么int i=7;printf("%d\n",i++ * i++);返回49? [打印本页]

作者: huangsailin    时间: 2015-7-10 16:42
标题: #C语言问题#为什么int i=7;printf("%d\n",i++ * i++);返回49?
使用我的编译器,下面的代码int i=7; printf("%d\n", i++ * i++); 返回49?不管按什么顺序计算, 难道不该打印出56吗?
作者: 泡泡龙    时间: 2015-7-10 18:17
就是49, 自增运算符的优先级高于乘法的,所以先计算两个i++,都是7, 7*7=49
作者: llo    时间: 2015-7-10 20:21
那是一条语句没有执行完  所以那个i没有自加  你在这个语句输出i的值是9  
作者: 丁铭检    时间: 2015-7-10 20:35
同意沙发的看法。。
作者: 糖糖本尊    时间: 2015-7-10 21:25
i++是表达式的值 所以为7 i的值为8 然后是7*7=49
作者: 爱楚楚    时间: 2015-7-10 21:50
i++,是先取在加,7*7,之后各自加一




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2