有人请告诉我以下代码之间的差异,它添加了数据类型int的两个变量.我想知道哪一个更好.
代码A:
sum = sum + value;
代码B:
sum += value;
我们通常更喜欢操作符超过1.还有什么具体原因吗?
我想知道上述代码与公约或效率水平之间的区别.推荐哪一个?
解决方法
尽管例如,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).