为了账号安全,请及时绑定邮箱和手机立即绑定

怎么算怎么运算,比如运算法则

怎么算怎么运算,比如运算法则

max=a>b?a++:(a++>a ?a+b:a);
查看完整描述

3 回答

?
qq_匡璐_0

TA贡献96条经验 获得超96个赞

大白话翻译:

max = 是赋值不多说,直接翻译等号右边,等号右边是表达式,举个表达式例子 1+1 ,显而易见这个表达式的值为 2

 max = 1+1   max赋值 为表达式的值2 就是这么个道理

继续翻译: a>b吗 如果 a>b为真 表达式取值为a++  如果a>b为假 表达式取值为子表达式的值(a++>a ?a+b:a   这部分是子表达式) 子表达式我就不翻译了 一个意思  



查看完整回答
反对 回复 2016-11-23
?
Darkspirit暗灵

TA贡献5条经验 获得超5个赞

假设 int a=1;  int b=2;

第一步,先看括号里的内容   (a++>a ?a+b:a);

a++(先使用a再加1)是否大于a,是的话值为a+b 不是的话值为a     ---也就是   1是否大于2,是的话值为4 不是的话值为2。  很显然a++<a, 故括号里的值为2(也就是加了1的新的a)。

再看剩下内容  a>b?a++:2;    a是否大于b  是的话值为a++ 不是的话值为2 

很显然 a的新值2 等于b , 

max=a>b?a++:(a++>a ?a+b:a)=2;


查看完整回答
反对 回复 2016-11-23
?
jfhdibrbfjd

TA贡献163条经验 获得超40个赞

你这题写的有错误不说了吗


查看完整回答
反对 回复 2016-11-22
  • jfhdibrbfjd
    jfhdibrbfjd
    你这些的还是不对啊 a和b没有值吗 没有值的话会出错的
?
望远

TA贡献1017条经验 获得超1032个赞

max=a>b?a++:(a++>a ?a+b=a);//这是一个三目运算符,还有错,a+b=a是什么鬼?
首先判断a>b吗?
true就是将a++的值 赋值给max(其实就是a的值赋值给max)
flase就是将后面大括号的值赋值给max
后面大括号的值就是例外一个三目运算符的值
它的值是判断a++>a吗?结果一定是flase,所以取:后面的值就是表达式a+b=a的值(当然这个表达式有错,LZ核对一下,就能得到结果)


查看完整回答
反对 回复 2016-11-22
  • 3 回答
  • 0 关注
  • 1637 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信