设为首页收藏本站

融智技术学院

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 361|回复: 0

IT百科——增量赋值

[复制链接]
MrLi 发表于 2014-1-21 14:00:03 | 显示全部楼层 |阅读模式
增量赋值
整理赋值(也称复合赋值运算)是给那些编程语言(特别是C派生出的语言)中的某种赋值运算的名称。增量运赋值替代了那些操作符需要一个可用的参数并且将操作结果返回给该参数运算。一个简单的例子:x+=1可以理解为x=x+1。同样结果也可用于各种二元运算符。
一般来说,在提供了这些特性的语言中,大多数操作符——需要一个可用参数而返回结果为同一类型,有增量运算等同于把结果返回给该变量,这些操作符包括算运算符、移位运算符和按位逻辑运算符。
例如,下面的语句或或者他的变形可以在很多程序中见到。
x = x + 1
他的意思是“用x变量中的值加1,然后把结果保存在变量x中”。就是这么简单,看起来效率低,变量x被查询两次,如果编译器没有意识表达式的这个两个部分是相同的:x也许被引用做数组元素或其他复杂性。对比下面的增量赋值版本:
x+=1
这个版本中,编译器没有任何理由不生成仅查找一次变量x的值的代码,而且并修改他的内容,当然需要机器代码支持这样的序列。例如,如果x是一个简单变量,机器码类似于下面的内容
加载 x
加 1
保存到 x
而且相似的代码生成相同的结构。但是如果有特殊的操作代码,也许如下:
MDM  x,1
意思是“修改内存”通过向x中加1,而且正经的编译器能生成类似结构的代码。有些机器码提供了INC和DEC操作符(加1或减1),其他一些语言也许允许有多余一个参数的使用方式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

新突破电商

小黑屋|手机版|Archiver|融智技术学院 ( 京ICP备09018999号  

GMT+8, 2018-6-18 15:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表