加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

= C中的运算符

发布时间:2020-12-16 03:14:46 所属栏目:百科 来源:网络整理
导读:有人请告诉我以下代码之间的差异,它添加了数据类型int的两个变量.我想知道哪一个更好. 代码A: sum = sum + value; 代码B: sum += value; 我们通常更喜欢操作符超过1.还有什么具体原因吗? 我想知道上述代码与公约或效率水平之间的区别.推荐哪一个? 解决方
有人请告诉我以下代码之间的差异,它添加了数据类型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).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读