赋值运算符是最基本的运算符之一,用于将右侧的值或表达式的计算结果赋给左侧的变量。它是一个二元运算符,意味着它需要两个操作数:一个是目标变量(左侧),另一个是要赋给该变量的值或表达式(右侧)。
赋值运算符包括:
-
基本赋值运算符
-
复合赋值运算符
赋值运算符是从右到左的结合性。这意味着在多个赋值运算符连续使用时,会先计算最右侧的赋值,然后依次向左。
1 基础语法
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
+= | 加等于 | int a=1; a+=2;(等同于a = a+2) | a值为 3; |
-= | 减等于 | int a=5; a-=3;(等同于a = a-3) | a值为 2; |
*= | 乘等于 | int a=2; a*=2;(等同于a = a*2) | a值为 4; |
/= | 除等于 | int a=4; a/=2;(等同于a = a/2) | a值为 2; |
%= | 模等于 | int a=3; a%=2;(等同于a = a%2) | a值为 1; |
注意:赋值运算符,会修改变量的原始值。 赋值符左侧,必须可修改(变量)。
int main(void)
{
// = 赋值符, 自右向左
int a = 2, b = 1, c = 0;
a = a + b;
printf("a = %d\n", a);
b = a < c;
printf("b = %d\n", b); // 直接 打印 b = a < c
a = b = c = 8;
printf("a = %d, b = %d, c = %d\n", a, b, c);
// += -= 复合赋值符。需求:微信钱包有 15.8 元, 发 2.9 元红包,收 13.6 元红包。
double money;
money = 15.8;
money += 2.9; // 等价于: money = money + 2.9;
printf("money = %lf\n", money);
// 需求: 发红包
money -= 13.6; // 等价于: money = money - 13.6;
printf("money = %lf\n", money);
// 其他 复合赋值符。
int i, j;
i = 10, j = 5;
//i *= j; // 等价于:i = i * j;
//i /= j; // 等价与:i = i / j;
//i %= j; // 等价与:i = i % j;
printf("i = %d\n", i);
// 思考:
// 等价于 i = i % (j - 2); %= 右侧看做一个整体.
i %= j - 2;
printf("i = %d\n", i);
// 注意:赋值符,左侧必须可修改
3 += 2;
return 0;
}
2 总结
-
先运算,后赋值。方向,自右向左
-
+= 可实现累加,将别人的数据累加给自己。
-
所有赋值运算符,都会修改变量原始值。