自增问题
#include <stdio.h>void main()
{
int j=5,m;
m = (++j)+(++j)+(++j);
printf("%d\n",m);
}
这为什么是22呢 等价于
((++j) + (++j)) + (++j)
先计算左边括号,j完成两次自增变成7,相加得14
然后等价于
14 + (++j)
j先自增变成8,结果为14+8 == 22 BngThea 发表于 2018-3-21 10:58
等价于
((++j) + (++j)) + (++j)
先计算左边括号,j完成两次自增变成7,相加得14
还有这种操作 WTS123456 发表于 2018-3-21 11:15
还有这种操作
不建议写这种代码
可读性极差,在不同环境下结果还可能不一样
页:
[1]