【发布时间】:2014-07-25 16:39:48
【问题描述】:
如果我想为变量分配一个新值并检查新值是否与旧值相同,我倾向于避免使用临时变量。我可以这样做吗:
if (oldval == (oldval = new_value()))
{
... do something
}
?
这种行为是明确定义的,还是评估优先级语言或编译器依赖?我可以试试这个看看结果,但它不能保证它也能在其他系统上工作。我是用 C++ 做的,所以这是我最感兴趣的语言,但如果行为与其他语言一致(或不一致),我想知道。
谢谢!
【问题讨论】:
-
这样的代码永远不会得到舞会的日期。
-
@hacks 是的,我错了,在重新思考 10 秒后删除了我的评论 :)
标签: c++ conditional-statements operator-precedence