一道简单的C语言计算题
- #include <stdio.h>
- void main()
- {
- int p = 0;
- int i = 5;
- int j = 5;
- int q = 0;
- q = (i++)+(i++)+(i++);
- p = (++j)+(++j)+(++j);
- printf("%d %d\n",q,i);
- printf("%d %d\n",p,j);
- }
运行的结果为:
15 8
22 8
q的值还好理解 就是后++是在此操作语句之后才会变成加值
p的值就有点难理解了,应该是
(++j)+(++j)+(++j)
先计算开始的(++j)+(++j),而计算这个的话需要先计算括号中的值得到++之后的两次为 7+7
再次计算最后的++得到 7+7+8 = 22
不过不知道是不是真正的原因。
Oct 11,2009 20:58
龙城瓶子
真难懂
大学没学好。。。
CEO 回复于 Oct 12,2009 15:26
哎 这些东西这些东西的确有点太纠结了
Oct 09,2009 22:23
卢松松
我还真不懂!
CEO 回复于 Oct 09,2009 23:01
你可是牛人啊~~
Oct 09,2009 20:09
分享联盟
为什么是7+7呢?还是不太明白这个,如果要我算,那就是6+7+8了。
另外前边那些int型完全可以用逗号分隔p、i、j、q只写一次“int”就可以了。
CEO 回复于 Oct 09,2009 23:01
7+7的地方设计到 ()的优先级高于+号,所以会先算出括号里面的值 int的地方的确可以像你那样写的,我写的有点多事
Oct 09,2009 14:23
先看看
过来支持下你
分页: 1/1
1
1


Oct 08,2009 22:53 ,
test the google maps
windows7版本7600和16384
