热门问题
时间线
聊天
视角

增量赋值

来自维基百科,自由的百科全书

Remove ads

增量赋值(Augmented assignment)或称复合赋值(compound assignment)是在一些编程语言中的一类赋值运算符。通常用于替代一条语句,其中的运算符把变量作为一个运算数,再把结果赋值给同一变量。例如x += 1可展开为x = x + (1)。常适用于算术运算符、移位运算符位操作运算符等。

语义

面向表达式语言英语expression-oriented programming language如C语言中,增量赋值语句是表达式,因此允许右结合的连续的增量赋值,如下例:

a += b += c

而Python语言的赋值语句和增量赋值语句不是表达式,因此不允许上述用法。

C++语言的增量赋值表达式的值为左值[1]因此允许下述用法:[2]

int x = 11;
(x *= 2) += 3; // Sets x to 25

在C语言、C++、Python中,增量赋值的赋值位置如果包括了函数调用,则强制只调用一次,如下例:

my_array[f1()] += 1

函数f1被强制只调用一次。

如果下例的f1()是宏扩展:

my_array[f1()] = my_array[f1()] + 1

f1被调用两次。

常见的增量赋值运算符

CC++C#等语言中的“复合赋值运算符”:[1][3][4][5]

更多信息 运算符, 描述 ...

语言支持

参见

参考文献

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads