2. 赋值运算符

赋值运算符 是构成赋值表达式的基本运算符。

什么是赋值表达式

赋值表达式 是用来修改变量(或其它数据)的值的一个表达式。通常在赋值表达式的末尾加一个分号(;) 形成一个可单独执行的表达式语句。

赋值运算符有如下几种:

=  *=  /=  %=  +=  -=  <<=  >>=  &=  ^=  |=

赋值表达式的语法

左操作数  赋值运算符  表达式

说明:

例如1

int x;

x = 100 + 200;

上述代码中 x = 100 + 200 是赋值表达式,最终变量 x 的值被改为 300

例如2

int x;
int y;

y = x = 100 + 200;

上述代码中 x = 100 + 200 先计算,变量 x 的值被改为 300,然后表达式 x = 100 + 200 的返回值就是 x 的值 300,再使用赋值表达式赋值给 y ,最终变量 y 的值也是 300。

问题:

现在有一个变量 x 此时它的值是未知的。我现在要在它原有的值的基础上增加 5 我该怎么办呢?起始我们可以这样写代码如下:

x = x + 5;

右表达式 x + 5 先算出值后再赋值给 x,此时 x 的值就被修改为原来的值加上 5 了。当然上述赋值表达式可以写成如下形式:

x += 5;  // 等同于 x = x + 5;

赋值表达式的其它 运算符列举如下:

左操作数 += 表达式     // 等同于: 左操作数 = 左操作数 + 表达式
左操作数 -= 表达式     // 等同于: 左操作数 = 左操作数 - 表达式
左操作数 *= 表达式     // 等同于: 左操作数 = 左操作数 * 表达式
左操作数 /= 表达式     // 等同于: 左操作数 = 左操作数 / 表达式
左操作数 %= 表达式     // 等同于: 左操作数 = 左操作数 % 表达式
// 以下是位运算相关的运算符(后续小节内容学完才会理解)。
左操作数 &= 表达式     // 等同于: 左操作数 = 左操作数 & 表达式
左操作数 |= 表达式     // 等同于: 左操作数 = 左操作数 | 表达式
左操作数 ^= 表达式     // 等同于: 左操作数 = 左操作数 ^ 表达式
左操作数 <<= 表达式    // 等同于: 左操作数 = 左操作数 << 表达式
左操作数 >>= 表达式    // 等同于: 左操作数 = 左操作数 >> 表达式

示例

#include <stdio.h>

int main(int argc, char *argv[]) {
    int x = 7,y = 2;
    int result;

    result = x + y; // 此时 result 值为 9
    printf("result: %d\n", result);

    result += 5; // 此时 result 值为 14
    printf("result: %d\n", result);

    return 0;
}

运行结果

result: 9
result: 14

练习:

写一个程序,输入矩形(长方形)的宽度和高度,打印矩形的面积和周长。