首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

j=(++i)+(++i);解决方案

2012-09-21 
j(++i)+(++i)像这类问题到底是如何计算的呢,为什么呢?如i1时为什么是6而不是5呢,是怎样计算的呢,另如j

j=(++i)+(++i);
像这类问题到底是如何计算的呢,为什么呢?如i=1时为什么是6而不是5呢,是怎样计算的呢,另如j=i+(i++);呢


[解决办法]
j=(++i)+(++i);
当i=1时;
第一个:++i=>i=2
第二个:++i=>i=3;
所以j=(++i)+(++i)=i+i=6
++i是i先++再用i

而j=i+(i++)
当i=1时;
j=i+(i++)=i+i=2
i++是i先拿来用,用完之后再++
[解决办法]
曾经我也纠结过这样的问题,可是后来等真正自己工作后才发现这都是用来考计算机等级用的,真正的开发就要简洁明了,基本上让别人看了思考不要超过3秒以上,否则宁愿多用两个等式,也不用这种算式。
[解决办法]


在同一语句中,同一个表达式如何有两次或以上其值进行修改,则其值是不确定的。


什么是不确定:不同的机器其值可能就不一样。

因此这类尽量不要这样写。比如j=(++i)/(++i);//i修改两次,其值不确定






[解决办法]
网上看到有些公司的笔试题就爱出些这种题,妈妈的
[解决办法]
看顶置的帖子...

不要看这种垃圾书!

看国外的名著.
[解决办法]
编译上 是 先 执行括号里面的, 然后再编译 括号外面的。。
所以 两个括号有限执行。。

热点排行