晕,我的答案怎么不对呀!后天就要考试了,大家快来看看吧!急!!!

来源:百度知道 编辑:UC知道 时间:2024/06/30 08:14:12
大家请看:
语句int i=3,k=(i++)+(i++)+(i++);
k=(i++)+(++i)+(i++);
k=(++i)+(++i)+(i++);
k=(++i)+(++i)+(++i);
分别求出这四个式子中i和k的值。
我的答案和参考答案不符,请大家给几个答案,最好说说为什么,我一点就通的,谢谢!!!
我的答案是k分别是9,12,15,18,j为6.对不对.

朋友,不着急!
k=(i++)+(i++)+(i++);k=3+3+3;
k=(i++)+(++i)+(i++);k=3+4+3;
k=(++i)+(++i)+(i++);k=4+4+3;
k=(++i)+(++i)+(++i);k=4+4+4;
这道题的题意应该是考你对优先级的掌握,在C++中有56个运算符,需要我们掌握的有18个。
其中()是最重要的,++是次要的。我看了你给的答案,你出错的地方我想了下,我给你举个例吧。
如果K=(i++)+(i++)+(i++);中()里面为(n+i++)那么得()的值时还要加上1,比如n=2,()值为
2+3+1。但是并没有n,所以(i++)的值还为3。++i的值自然为4,你应该了解了吧。我给你写个优先
级的表,希望你能巩固。哦对了,如果在同一个域里进行计算,那么i的值要继承。
作用域符号 ::
最重要的 () [] -> typeid dynamic_cast static_cast reinterpret_cast
const_cast
次要的 ++ - ~ ! + - * & sizeof new delete type
成员选择 -> * . *
乘法运算 * / %
加减运送 + -
如果还有什么疑问你加我QQ94110714问我
共同进步!