C语言成长之路26:复合赋值运算符
复合赋值运算符有以下几个:
+= -= *= /= %=
而这种复合运算运算符,其实就想但与使用自身进行运算,如:
int number = 10;
number += 10; -->number = number + 10; //即20
注:
1、复合赋值运算符的运算优先级是14,远低于普通的加减乘除;
2、要记得定义的是变量,复合赋值是边运算边赋值,变量的值都取最后一步运算的结果,而不是最初定义的值;
以下是两个例子:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <limits.h> 4 5 void main(){ 6 /* C语言成长之路26:复合赋值运算符 7 * 复合赋值运算符有以下几个: 8 * += -= *= /= %= 9 */ 10 // 举个例子:number += 10; 相当于number = number + 10; 11 int number = 10; 12 number += 10; 13 printf("number = %d",number); 14 15 // 练习1: 16 int a = 3; 17 int b = a += a -= a * a; 18 printf("\nb = %d,a=%d",b,a); 19 /* 过程: 20 * 1--> 由于*的优先级比+= -= 大,所以先计算a*a = 3 * 3 = 9; 21 * 2--> 剩下的是a += a -= 9,从右边往左计算,所以为a += (3 -= 9)则a 当前等于-6; 22 * 3--> 当前a= -6,b = -6 + -6 = -12; 23 * 4--> 由于b=a,所以最后结果a和b都是-12; 24 */ 25 };