关于++运算的坑爹问题
直接上代码:#include <stdio.h>
void main()
{
int i=8,a;
a=(++i)+(++i)+(++i);
printf("%d\n%d\n",a,i);
}
结果是a=31
求大神解释一下运算的具体过程= =!
我的天 啊 拜托能不能提问之前先搜索下 你问的逗号表达式啊 自增自减都已经有N多人详细回答了N便了!!!!!!!! a=(++i)+(++i)+(++i);
第一个++i,i=9
第二个++i, i=10
第3个++i,i=11,要我算就是30呵呵,多百度,多学习,咱们现在学的还很浅呢 http://bbs.fishc.com/forum.php?mod=viewthread&tid=15954&highlight=%D7%D4%D4%F6
http://bbs.fishc.com/forum.php?mod=viewthread&tid=39104&highlight=%D7%D4%D4%F6
看完你就懂了 牡丹花下死做鬼 发表于 2014-2-13 17:50 static/image/common/back.gif
http://bbs.fishc.com/forum.php?mod=viewthread&tid=15954&highlight=%D7%D4%D4%F6
http://bbs.fishc.com ...
非常感谢!! 对于不同的编译器结果是不同的,这种问题其本身就是语法错误的懂吗,但是那些脑残的出题目的所谓的出题者们,连这都不清楚,还来上台来,就如,谭浩强之类的,把main函数搞出N种写法是一个道理。 1.计算第一个括号++i,之后i=9,
2.计算第二个++i之后i=10.
3.,此时变成i+i+(++i),应当计算i+i,也就是10+10=20
4.变成20+(++i),计算最后一个(++i)之后i=11,
5.,计算20+11=31,
记得了按照标准来说,其本身是语法错误的,,就如没有void mian(){}这类写法一样,是语法错误的,可是小甲鱼还是一直在写void main(){}典型被谭浩强影响的
为什么写错了,还不报错呢,你要感谢vc调节出错的能力。
页:
[1]