有如下代码: 我想把两行并成一行,这样: 或者: 哪一种是对的?或者两种都不对? |
|
看了置顶的贴子,发现这两种方式都不对。因为“=”号并不是一个顺序点。是吗?
|
|
两种都可以实现你想要的结果。
|
|
20分 |
感觉上p[n++] = p1[n];和p[n] = p1[n++];和都是先实现
p[n] = p1[n]; 再实现 n ++; 因为是后++,所以先执行完操作才自加,感觉都能实现 |
关于++,–
标准C++定义为 1、在前,变量首先自增,然后再计算表达式 2、在后,首先计算表达式,然后变量自增 但是,有的编译器有bug,比如vc++6.0,无法计算出连续三个前++ 例如 int a = ++n + ++n + ++n; |
|
两种都不对啊
|
|
不确定的行为,建议不要这样写
而且从美观角度说,我觉得写成两行更好,因为写成一行破坏了对称美观。。 |
|
别误导楼主 |
|
不是编译器BUG |
|
分两行写
p[n] = p1[n]; n ++; |
|
我看过, 我想说的是谁见过哪个操作系统中或者用什么编译器, 使 |
|
你见识少是你自己的问题 |
|
在我没见过之前, 别人说的始终是别人说的, 你这是什么编译器, 我要自己试试。 |
|
抛开对错不谈,你为什么要合并? 很多时候,代码的可读性远远比代码性能重要。 |
|
在线编译器 IDEONE.COM |
|
见识了, 你应该早点把这种强有力的证据拿出来啊 |
|
因为 置顶帖是比这个主线编译器更有力的证据 |
|
置顶帖没啥价值,罗里八索,很简单的东西说得无比复杂,不值一喷。 |
|
两种都不对,与先前想要的结果不一样吧
|
|
p[n] = p1[n];
n ++; 建议就这样写 要不就这样 |
|
分开写
|
|
编译器行为。结果是未定义的。。。不同的编译器结果不同。本来就不能这么写。。
|
|
原来的写法多好的,适合后期的代码维护。
有时候,不一定要追求所谓的“效率高”“代码段“ 比如我曾经看过一份代码中,很有印象的这样写来取数组的内容的(类似,变量名可能不一样) int nValue = globleValueArray[++User[n++].getValue[++n].m] 当时我就跪了。。。 |
|
哈哈,强大 |
|
建议重载++,来验证一下顺序。
|
|
事实,没办法,有的人就是喜欢卖弄代码技巧,完全不考虑代码要给别人看,别人维护,坑。 |