www.fltk.net > 假设int A=1,B=2;则表达式(++A/B)*B%%的值是多少?答案是2,但是我不明白~~~

假设int A=1,B=2;则表达式(++A/B)*B%%的值是多少?答案是2,但是我不明白~~~

优先级问题,真正的程序中一定要尽量避免这种可读性差且宜出错的代码 这个表达式分解如下 a=a+1; //a=2 a=a/b; //a=1 a=a*b; //a=2 b=b-1; //b=1 这一句是这个表达式结束后的事情了,所以表达式的值是2

答案是2,考虑优先级哦

a+++--b = 2这个可以解析为(a++)+(--b)这是因为++和--的优先级比+(加)的优先级高.然后a++为先把a带入公式中,然后再自加1, --b为b先自减1,然后再带入公式中,就可以解析为:a + (b - 1)= 2;a = a + 1所以 a+++--b = 2a = 2, b = 1

(a++)表达式会先调用a的值,为1.然后a自加1;(++b)b先自加1,变成3,然后再被表达式调用.所以答案是:1+3=4 总结下:a++:先用再变 ++a:先变再用

!(a=b)因为a=b是赋值语句,所以!(a=b)为0,此时a=2;&&优先级比算术运算符优先级低,所以&&前面部分为0-2即0-2=-2&&后面b+2*2为6;所以整个表达式为-2&&6为1;!(a-b):a-b为-1;因为-1不是0,所以表达式的值为0假 C语言规定!x中x不为0则!x为0;即所有非0的数都是真,如-1在C中被人为是真,!(-1)则是假

a++是先使用a的值,然后再改变a的值.++b是先改变b的值加1,然后再使用b的值.结果为 1+3 =4

选a?:条件表达式,如果?前的值为真,最后的结果就是:前的值,否则就是:后的值.a 评论0 0 0

相关搜索:

网站地图

All rights reserved Powered by www.fltk.net

copyright ©right 2010-2021。
www.fltk.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com