C程序 初学者关于自加自减的问题

发布时间:2024-05-17 16:40 发布:上海旅游网

问题描述:

当i=3,i++*++i=? DEV C++上得16 可是怎么算得啊? 我算的是3*5=15 希望能讲详细点 谢谢

问题解答:

++的优先级大于*,++的结合旅从右到左,先计算++i,表达值为4,i为4,再算i++,表达式值为4,i为5.
4*4=16。

这个式子中i值变了两次 i原始值是3

i++是用之后加1 所以 i++*++i=? 中的i++还是3

用过之后i的值自动加1变成4

然后后面那个++i是用之前加1

所以当系统调用++i时 先找到i值是4 然后加上1变成5

然后再来处理 i++*++i=? 这时式子中的++i就变成了5

所以 3*5=15

这些++在一起的时候
有优先级的
先看有没++i
有先做++i
所以i先变成4
才去做
i++
还是4
4*4=16

i=3
4*4=16
i++是自加完在做运算,++i运算完在自加,这个程序算完i=5

热点新闻