= C中的运算符

前端之家收集整理的这篇文章主要介绍了= C中的运算符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有人请告诉我以下代码之间的差异,它添加了数据类型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).

猜你在找的C&C++相关文章