gpt4 book ai didi

乘法时的c++复合赋值

转载 作者:行者123 更新时间:2023-11-30 00:57:16 25 4
gpt4 key购买 nike

有没有办法使用复合赋值运算符来实现这样的事情:

a = (a * 10) + b;

最初我尝试了以下方法:

a *= 10 + b;

但这等同于:

a = a * (10 + b)

只是好奇。今天遇到了这个。这不是作业。

最佳答案

如果你真的需要确保 a 只计算一次,你可以使用 *= 返回左值这一事实:

(a *= 10) += b;

但这不是好的代码,我认为它可能会在 C++11 之前调用未定义的行为,因为修改 a 两次(一次在 *= 中,一次在 += 中)而没有干预序列点数。

关于乘法时的c++复合赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8525857/

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