【发布时间】:2011-06-22 15:53:44
【问题描述】:
在阅读 C++ 书籍时,我遇到了一个没有正确解释的表达式(或者我可能只是不理解解释)。这是表达式:
c = a+++b;
这是什么意思?
c = a + (++b); // 1
c = (a++) + b; // 2
谢谢。
【问题讨论】:
-
@DeadMG,我说得再好不过了。除非您试图破译被正当解雇的其他人的代码,否则我没有必要询问混淆代码的某些部分的作用。
-
你为什么不试试看a、b和c的结果值是什么?
-
为什么不直接运行代码看看会发生什么? g++ 将其解释为您的第二个示例。我认为由于缺乏其他规则,它只是从左到右解释表达式。
-
@DeadMG,@Rocky Triton,这有什么愚蠢的?我不明白评论。你是什么意思混淆?这种表达方式可能很有用。
-
@afaolek:它被认为是
dumb(虽然我不会使用这个词),因为你不会在实际代码中编写它(因为不清楚)。使用高级语言的全部意义在于它比汇编更容易阅读。使其难以阅读(这是混淆的含义)会适得其反。因此原始表达式没有用(因为它很难阅读),而 `c = (a++) + b;` (稍微)更有用。
标签: c++ expression increment