m*********a 发帖数: 3299 | 1 int z,x=9,y=99;
z=0?++x,++y:--x,--y;
这个时候z=98是对的
但是
z=1?++x,++y:--x,--y;
z是99, 不是100
必须
z=1?(++x,++y):--x,--y;
或
z=1?++x,++y:(--x,--y);
或
z=1?(++x,++y):(--x,--y);
就对了。必须至少一个加括号 | w***g 发帖数: 5958 | 2 这个以前是月经贴。现在C++年纪到了已经好久没人讨论了。
答案是不要写这样的代码。
C++编译器没错,可以认为是语言设计上的bug。
【在 m*********a 的大作中提到】 : int z,x=9,y=99; : z=0?++x,++y:--x,--y; : 这个时候z=98是对的 : 但是 : z=1?++x,++y:--x,--y; : z是99, 不是100 : 必须 : z=1?(++x,++y):--x,--y; : 或 : z=1?++x,++y:(--x,--y);
| m*********a 发帖数: 3299 | 3 知道了,这个我以前不知道
【在 w***g 的大作中提到】 : 这个以前是月经贴。现在C++年纪到了已经好久没人讨论了。 : 答案是不要写这样的代码。 : C++编译器没错,可以认为是语言设计上的bug。
| b*******s 发帖数: 5216 | 4 experienced coders never get stuck in these kinda shits
skip the old dirty C style please
these have nothing to do with performance, merely make you code ugly
【在 m*********a 的大作中提到】 : 知道了,这个我以前不知道
| b*******s 发帖数: 5216 | 5 programming is for resolving problems
it looks you are producing problems | N******K 发帖数: 10202 | 6 lz按照学文科的方法学习计算机语言
【在 b*******s 的大作中提到】 : programming is for resolving problems : it looks you are producing problems
|
|