小编Mat*_*rba的帖子

这种情况会导致什么结果?它是定义的还是依赖于编译器的?

如果我想为变量分配一个新值并检查新值是否与旧值相同,我倾向于避免使用临时变量.我可以这样做:

if (oldval == (oldval = new_value()))
{
 ... do something
}
Run Code Online (Sandbox Code Playgroud)


这种行为是明确定义还是评估优先级语言或编译器依赖?我可以尝试这个并查看结果,但它不能保证它也能在其他系统上运行.我在C++中这样做,所以这是我最感兴趣的语言,但如果行为在其他语言中是一致的(或不一致的),我想知道.

谢谢!

c++ operator-precedence conditional-statements

5
推荐指数
2
解决办法
159
查看次数