op=

赋值语句中的 op= 复合赋值形式

C语言提供了一种缩写方式,将”运算 + 赋值”合并为一条语句,称为复合赋值运算符。

1. 基本语法与等价关系

variable op= expression;

等价于:

variable = variable op (expression);

注意:右侧表达式整体被括号包裹,优先级高于 op。

2. 算术复合赋值运算符

op 可以是 + - * / % 中的一员:

简写形式等价展开示例(初始 number = 10)
number += 1number = number + 1number 变为 11
number *= 3number = number * 3number 变为 30
number /= 3number = number / 3number 变为 3
number %= 3number = number % 3number 变为 1
number -= 2number = number - 2number 变为 8

3. 代码示例

示例一:+= 递增

#include <stdio.h> 

int main(void)
{
    int number = 0;
    number += 1;
    printf("%d\n", number);  // 输出 1
    return 0;
}Code language: PHP (php)

示例二:*= 乘法

#include <stdio.h> 

int main(void)
{
    int number = 3;
    number *= 2;
    printf("%d\n", number);  // 输出 6
    return 0;
}Code language: PHP (php)

示例三:右侧为表达式(自动加括号)

#include <stdio.h> 

int main(void)
{
    int b = 4;
    int number = 3;
    number *= b + 2;           // 等价于 number = number * (b + 2)
    printf("%d\n", number);   // 输出 21(3 * 6)
    return 0;
}Code language: PHP (php)

示例四:/= 与表达式

a /= b + 1;    // 等价于 a = a / (b + 1),不是 a = a / b + 1Code language: JavaScript (javascript)

4. 其他复合赋值运算符

op 还可以是位移和位运算符,后续学习:

运算符含义等价形式
<<=左移赋值var = var << n
>>=右移赋值var = var >> n
&=按位与赋值var = var & mask
^=按位异或赋值var = var ^ mask
\|=按位或赋值var = var \| mask

Previous:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注