
当从键盘上输入6时,x=6,x++表达式的值为6,接着x自加1,即x=7,故x++=6>5成立,输出x的值7;当从键盘上输入4时,x=4,x++表达式的值为4,接着x自加1,即x=5,故x++=4>5不成立,输出x--(后置运算),所以先输出x的值5,之后再进行自减1 *** 作。
i++ 和 ++i 是不一样的。这两个的优先级是不一样的。在查表的时候应该能注意到有两个++和--,i++ 是先用 i 再自加,++i 是先自加再用 i。
扩展资料:
优先级与求值顺序无关。如a+b &&b*c,虽然*优先级最高,但这个表达式求值顺序是从左到右。
优先级从上到下依次递减,最上面具有最高的优先级,逗号 *** 作符具有最低的优先级。
相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
基本的优先级需要记住:
指针最优,单目运算优于双目运算。如正负号。
先算术运算,后移位运算,最后位运算。请特别注意:1 <<3 + 2 &7等价于 (1 <<(3 + 2))&7.
逻辑运算最后结合。
参考资料来源:百度百科-运算符优先级
x++跟x--都是先执行当前语句然后再加减的~例如:
if(x++>5)这个语句是先之行(x>5)再执行(x=x+1)的
相同的
printf("%d\n",x--)
是先输出来x
再进行x=x-1;的~
所以输入6时
先判断6>5
正确
然后
6+1=7
然后输出
输入4时
先判断4>5
错误
然后
输出x
输出之后4-1=3;
(注意是先输出来4再运算变成3的)
两种题型是不同的~第一题中,x++,表示先用后变。即先调用x的值,调用完之后,x自身加1.这题里输入2,那么先调用2,2>2不成立,不执行if的语句。但是x还是要自身加一个1.变为3.之后输出也是同理,x--,先调用x的值3,输出3,然后x自身再-1变为2.下面类型考的是算法:||或运算里是只要有一个满足,那么就为真。你先++a>0满足条件,此时已经为真,那么就会屏蔽后面的算法。 同理,当&&运算时,若前面的条件为假,那么结果已经为假。屏蔽后面的算法,即第二个表达式不执行~
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)