请告诉我以下添加两个数据类型 int
变量的代码之间的区别。我想知道哪个更好。
代码 A:
sum = sum + value;
代码 B:
sum += value;
我们通常更喜欢 ++
运算符而不是 += 1
。这背后还有什么具体原因吗?
我想知道上述代码在约定或效率水平方面的区别。推荐哪一个?
最佳答案
虽然 e.g. 的最终结果someVar++
操作符与 someVar += 1
相同,还有其他的东西在起作用。
让我们做一个简单的陈述
foo = bar++;
实际上等价于(但不等于)
temp = bar;
bar += 1;
foo = temp;
至于前缀和后缀递增或递减运算符,它们有不同的operator precedence ,这将影响使用这些运算符的指针算术之类的东西。
至于区别
foo += 1;
和
foo = foo + 1;
原始类型(如 int
或 float
)或指针类型没有区别,但如果 foo
是具有运算符重载的对象。那么
foo += 1;
等于
foo.operator+=(1);
同时
foo = foo + 1;
等于
temp = foo.operator+(1);
foo.operator=(temp);
语义上有很大的不同。实际上也是如此,尤其是如果任何运算符重载函数有副作用,或者如果复制构造函数或析构函数有一些副作用(或者你忘记了 the rules of three, five or zero)。
关于c++ - += C++ 中的运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34465848/