int a = 1, b =2, c = 3, d = 4; 表达式:a++ < b ? a : c < d ? --a : --d 的值

逗逗喵吧 2012-05-15 05:00:31
int a = 1, b =2, c = 3, d = 4;
表达式:a++ < b ? a : c < d ? --a : --d 的值为2,
但是我不知道它是怎么转变来的,它数据变化的流程是什么?
...全文
855 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
玲仙 2012-05-16
  • 打赏
  • 举报
回复
看了就不曉得是做啥用的...
wizard_tiger 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

先计算 a++ < b 由于这时a=1,b=2; 执行a,而不执行c < d ? --a : --d,这时a=2;所以表达式 a++ < b ? a : c < d ? --a : --d的值为2;
[/Quote]
++
不过建议楼主尽量不要写这样的程序,这种程序的结果有时是跟据编译器而定的,不同的编译器会有不同的结果。
regainworld 2012-05-16
  • 打赏
  • 举报
回复
没有意义,程序写得越清晰越好
22too 2012-05-16
  • 打赏
  • 举报
回复
就知道是条件运算符!具体不懂了
youkuxiaobin 2012-05-15
  • 打赏
  • 举报
回复
表示对这种问题很有压力,不会啊
CMDZX 2012-05-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

先计算 a++ < b 由于这时a=1,b=2; 执行a,而不执行c < d ? --a : --d,这时a=2;所以表达式 a++ < b ? a : c < d ? --a : --d的值为2;
[/Quote]
条件运算符不是右结合性的吗?
飞天御剑流 2012-05-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
你还是蛋疼去吧,取决于编译器的解释顺序
[/Quote]
条件运算符是例外,它的子表达式的计算顺序和顺序点都是确定的。
小白晒太阳 2012-05-15
  • 打赏
  • 举报
回复
++[Quote=引用 6 楼 的回复:]

先计算 a++ < b 由于这时a=1,b=2; 执行a,而不执行c < d ? --a : --d,这时a=2;所以表达式 a++ < b ? a : c < d ? --a : --d的值为2;
[/Quote]
mzliming 2012-05-15
  • 打赏
  • 举报
回复
先计算 a++ < b 由于这时a=1,b=2; 执行a,而不执行c < d ? --a : --d,这时a=2;所以表达式 a++ < b ? a : c < d ? --a : --d的值为2;
笨笨周0915 2012-05-15
  • 打赏
  • 举报
回复
无聊的程序。。。。真正开发的时候 很少用到的。。。风格极差。。不提倡了。。
猪头小哥 2012-05-15
  • 打赏
  • 举报
回复
为什么不是从右边开始运算?
酱油党 2012-05-15
  • 打赏
  • 举报
回复
你还是蛋疼去吧,取决于编译器的解释顺序
W170532934 2012-05-15
  • 打赏
  • 举报
回复
先运算:a++<b :由于a=1,b=2,所以这个逻辑运算是true,选择第一个运算表达式:a。而这时候a=2
飞天御剑流 2012-05-15
  • 打赏
  • 举报
回复
a<b为真,然后a后加1,结果就是2了。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧