文档视频讲解链接地址
腾讯课堂视频链接 : 13_表达式_复制与复合运算符
腾讯课堂视频链接 : 14_表达式_逗号运算符
2.13 赋值运算符与赋值复合运算符
1. 赋值运算符
赋值运算符为“=”,其运算的一般形式如下:
<左值表达式> = <右值表达式>赋值复合运算符其运算的一般形式如下:
< 变量> <操作符>= <表达式>相当于下列式子:
<变量> = <变量> <操作符> <表达式>例如:
x=10; x=y=15;
2. 赋值复合运算符
赋值复合运算符一共有10个
赋值复合运算符如下:
实例 14
源程序:
01-cbase\14-fuhe.c
源代码:
#include <stdio.h> int main(int argc, char const *argv[]) { int a = 10 ; int b = 8 ; a += b; // a = a + b ; printf("a=%d\n",a); a = 10 , b= 8 ; a -= b; // a = a - b ; printf("a=%d\n",a); a = 10, b = 8; a *= b; // a = a * b ; printf("a=%d\n",a); a = 10, b = 8; a /= b; // a = a / b ; printf("a=%d\n",a); a = 10, b = 8; a %= b; // a = a % b ; printf("a=%d\n",a); a = 10, b = 8; a &= b; // a = a & b ; //10: 0000 1010 // & //8 : 0000 1000 // : 0000 1000 // 0x8 printf("a=%d\n",a); a = 10, b = 8; a |= b; // a = a | b ; //10: 0000 1010 // | //8 : 0000 1000 // : 0000 1010 // 0xa // 10 printf("a=%d\n",a); a = 10, b = 10; a ^= b; // a = a ^ b ; printf("a=%d\n",a); // a = 0 a = 10, b = 8; a <<= b; // a = a << b ; // 高位移出, 低位补0 a= a* 2^8 // 0 printf("a=%d\n",a); // a = 2560 a = 10, b = 8; a >>= b; // a = a >> b ; // 低位移出, 高位补0(符号位) a= a / 2^8 // 0 printf("a=%d\n",a); // a = 0 return 0; }
运行结果:
a=18 a=2 a=80 a=1 a=2 a=8 a=10 a=0 a=2560 a=0
2.14 逗号运算符
逗号运算符
在C语言中,可以把多个表达式用逗号联接起来构成一个更大的表达式。其中的逗号称为逗号运算符,所构成的表达式称为逗号表达式。
逗号表达式中用逗号分开的表达式分别求值,按照从左向右的顺序依次求值,以最右边一个表达式的值作为整个表达式的值。
例如:
float x=10.5, y=1.8, z=0; z = (x+=5, y = x+0.2) ; // z 赋值为15.7, x赋值为15.5, y赋值为15.7 z = (x=y=5, x +=1) ; // z 赋值为6, x赋值为6, y赋值为5 z = (x=5, y = 6, x+y ) ; // z 赋值为11, x赋值为5, y赋值为6 z = (z=8, x=5, y = 3) ; // z 赋值为3, x赋值为5, y赋值为3