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 };

 

posted @ 2020-07-21 13:45  Akne  阅读(1768)  评论(0编辑  收藏  举报