
1 gclove 2017-12-20 19:35:34 +08:00 理解不了.. i 和 j 没有声明吗 ? |
2 YMB 2017-12-20 19:36:43 +08:00 c = (i>0)?i:j;// c=i || c=j c=1; emmmm... |
3 hitmanx 2017-12-20 19:39:06 +08:00 还能这样写啊?。。 ((i>0) ? i : j)这个返回的是左值? |
4 shoujiaxin 2017-12-20 19:39:31 +08:00 via iPhone i 大于 0 就把 1 赋给 i,否则赋给 j ? |
6 geelaw 2017-12-20 19:41:39 +08:00 if (i > 0) i = 1; else j = 1; 这个对 C 似乎无效。 |
7 hitmanx 2017-12-20 19:42:36 +08:00 搜了一下,还真有人讨论 ternary operator expression 是不是 lvalue 的:https://www.reddit.com/r/ProgrammerTIL/comments/4zr491/c_a_ternary_operator_expression_is_an_lvalue/?st=jbezlb70&sh=ff573171 这个写法估计代码 review 的时候会被喷 |
8 fatttt 2017-12-20 19:51:47 +08:00 via Android 不用理解,找写代码回来返工。 |
9 IamJ 2017-12-20 20:19:40 +08:00 via iPhone 要是组里谁写出这样的代码我打断他狗腿 |
10 LGA1150 2017-12-20 21:30:16 +08:00 gcc 编译报错,g++ 正常编译并执行 版本 5.4.0 x86_64-linux-gnu |
11 Terry05 2017-12-20 21:45:55 +08:00 先不论这条语句执行结果有不有报错,这种让大多数人阅读起来有困难,或是有岐义的代码,在实际项目开发过程就是要尽量避免的,总保不准某些代码最终就交接到了刚毕业的新人手上 这种类似于 “炫技” 的代码,要么可以在开源插件里使用,以表示作者的高超水平,要么最好就面试题里,教科书里弄弄就好,做项目就是要尽量避免给自己给别人挖坑 |
12 lrxiao 2017-12-21 01:57:39 +08:00 ternary 首先要是同类型不然会做 common_type 转换成 rvalue |
13 lrxiao 2017-12-21 01:59:43 +08:00 c 语法就不支持这种 |
14 Tink PRO 为了三目而三目 |
15 amai 2017-12-21 08:09:23 +08:00 三元判断 |
16 print1024 2017-12-21 08:21:09 +08:00 等价于 if (i>0){i=1}else{j=1} |
17 ray8888 2017-12-21 08:35:44 +08:00 写这种代码有什么意思,没有一点易读性 |
18 dumplinger 2017-12-21 09:45:52 +08:00 @hitmanx 噗,不是左值…… |
19 canxden 2017-12-21 11:22:56 +08:00 Expression is not assignable |
21 yaowenz 2017-12-21 17:50:40 +08:00 写的人拉出去枪毙 |