gpt4 book ai didi

c++ - 语句中的等号/赋值运算符

转载 作者:搜寻专家 更新时间:2023-10-31 02:13:56 25 4
gpt4 key购买 nike

前几天我在浏览github,发现了这段C++的代码。

order[i]= order[i]+order[r]-(order[r]=order[i]);

为什么一行代码中有2个等号?我以前从未见过这个。

最佳答案

赋值运算符= returns an LVALUE, meaning a value can be further assigned to it .

此外,这通常是糟糕的编码,因为它很丑陋。作者最好在多行上做单独的分配,因为它更容易阅读,在实现时更不容易出错(作为可读性的扩展),优化器可能会在任何一种情况下生成类似的代码,等等。此外,这种代码经常导致关于 SO 的常见重复问题:sequence points, and why this code is horrible.

编辑:And as others have pointed out, it invokes UB. Axe it.

关于c++ - 语句中的等号/赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40579989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com