----------------解决方案--------------------------------------------------------
反对6楼的说法:
k=3;
k=k+(k++);
这一题的运算顺序是k=3+3;
执行这一步后再执行k++;
最后得出的结果才是k=7;
对比之下就很明显:
k=3;
b=k+(k++);
先执行:b=3+3;
再执行:k++;
最后得出的记过是:b=6;k=4;
最后的一题其运算顺序是:
先执行:++k; (k=4)
再执行b=k+k; (b=8;k=4)
----------------解决方案--------------------------------------------------------
如果这样 那应该支持5楼的说法呀
谁对谁错?
----------------解决方案--------------------------------------------------------
这种问题最好自己先上机试一下,然后这种自加自减跟编译器也有关系的。
----------------解决方案--------------------------------------------------------
我试过了
7 6 8啊 我也用的TC
为什么 第一个和第二个的结果不一样啊?
[此贴子已经被作者于2006-2-16 22:20:03编辑过]
----------------解决方案--------------------------------------------------------
12楼说的对吗?
----------------解决方案--------------------------------------------------------
1、k=3;
k=k+(k++);
要注意++在后面是先运算再自加的,所以执行k=3+3=6,然后自加就是k=k+1=7了
2、k=3;
b=k+(k++);
如上题,先执行b=3+3=6,然后k才自加,故些时K=4,而最终结果则是b=6
3、k=3;
k=k+(++k);
要注意++在前面是先自加再运算的,所以先执行++k,即得k=4然后再执行k=k+k=4+4=8
综上所述,运算结果为7、6、8
----------------解决方案--------------------------------------------------------
我认为是667啊!!
k=3;
k=k+(k++);取k++前的值;k=k+3=6;
2.b也是一样啊!
第3个是取++k的值在加上k;
b=3+4=7;
----------------解决方案--------------------------------------------------------
楼上的 自己去试一试就知道了
----------------解决方案--------------------------------------------------------
7 6 8
[此贴子已经被作者于2006-2-17 20:54:08编辑过]
----------------解决方案--------------------------------------------------------