int a = 3;求表达式a = ('m' >'n')?a+2:a-2,a+3,3*a的值之后,a的值是 计算顺序
人气:452 ℃ 时间:2020-03-25 11:26:59
解答
a = ('m' >'n')?a+2:a-2,a+3,3*a
等同于a = true?a+2:a-2;
等同于a=a+2; a=5;
,的运算顺序是自左向右.
a+3,3*a在这里没有意义.为什么a+3, 3*a在这里没有意义因为,运算符是自左向右运算,而,运算符的优先级最低,所以先计算a = ('m' >'n')? a+2:a-2a+33*a三个算式,而a+3, 3*a运算后没有赋给其它变量值,所以这种运算是没有用处的。我的答案也错了,'m'>'n'应该是false,'m'在'n'的前面,相减应该是-1。最终结果应该是1如果改成a = (('m' >'n')? a+2:a-2,a+3,3*a);那么就相当于a = 3*a;这是因为用()包起来的多项表达式,用,分隔,取()中的最后一项为运算结果。
推荐
- 若有以下定义int m=5,y=2;,则计算表达式y+=y-=m*=y后的y值是
- 若a为int变量,则计算表达式a=25/3%3后a的值为___
- 求算术表达式x+a%3*(int)(x+y)%2/4的值,设x=2.5,a=7,y=4.7中a%3*(int)(x+y)%2/4运算的先后顺序
- 若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值是多少?
- 设float m=2.3,n=2.8;int i=10; 表达式m+i%3*(int)(m+n)%2/8的值是?
- 左边白字旁,右边上面一个白,白下面是一个大,大下面是一个十,读什么?
- 如何攻下高三英语阅读理解长句?
- 某校男生人数的80%比女生人数多20%,男生人数占学生总数的_%.
猜你喜欢