MySQL赋值运算符与表达式用户指南

2.10 赋值运算符与赋值表达式

对于类似i = i + 2这样的表达式,左边的变量出现在右边时,可简写为:i += 2。这里的+=被称为赋值运算符。大多数二元运算符(例如+)都对应一个赋值运算符形式:op=,其中op可以是+、-、*、/、%等。

  • 如果expr1expr2为表达式,expr1 op= expr2相当于expr1 = (expr1) op (expr2),只是expr1只被计算一次。注意:括号优先级,如x *= y + 1等价于x = x * (y + 1)

举个例子,函数bitcount用于计算整数x中1的比特位数量:

/* bitcount:统计x中为1的比特位*/
int bitcount(unsigned x) {
    int b;
    for (b = 0; x != 0; x >>= 1)
        if (x & 01)
            b++;
    return b;
}

x声明为unsigned类型保证向右位移时空出的位被填充为0,使代码兼容不同机器赋值运算符的优势在于简洁,且更贴近自然语言的表达:我们通常说“将2加到i中”而非“取i,加2后放回i”。

pdf 文件大小:1.62MB