当前位置 博文首页 > CW_qian的博客:7月16日笔记C语言基础运算符(算术,关系,逻辑
为什么会有运算符表达式,什么是运算符表达式,有什么作用?
表达式就是表达某种意思,表达式用运算符连接操作数(指令执行操作的数据来源)的式子
1. 算术运算符
运算符 | 功能说明 | 举例 |
+ | 加法,一目取正 | a+b |
- | 减法,一目取负 | a-b |
* | 乘法 | a*b |
/ | 除法 | a/b |
% | 取模(求余) | a%b |
++ | 自加1 | a++, ++b |
– | 自减1 | a–, --b |
int?a = 100;
int?b = 200;
int?c = ++a; // a先自加1,变成101;然后再赋值给c,因此c等于101
int?d = b++; // b先赋值给d,因此d等于200;然后b自加1,变成201
由关系运算符连接操作数组成的式子,叫做关系表达式
2. 关系运算符?(结果只有两种,要么为0(假),要么为1(真))
运算符 | 功能 | 举例 | 说明 |
> | 大于 | a > b | 判断a是否大于b |
>= | 大于或等于 | a >= 5 | 判断a是否大于或等于5 |
< | 小于 | 3 < x | 判断3是否小于x |
<= | 小于或等于 | x <= (y+1) | 判断x是否小于或等于y+1 |
== | 等于 | (x+1) == 0 | 判断x+1是否等于0 |
!= | 不等于 | c != ‘\0’ | 判断c是否不等于’\0’ |
表达某数理逻辑的表达式,对象以字节为单位
3. 逻辑运算符?(结果只有两种,要么为0(假),要么为1(真))
运算符 | 功能说明 | 举例 |
! | 逻辑反 | !(x==0) |
&&??a&&b(只要)a为假,那么b不运算,这称之为惰性运算 | 逻辑与 | x>0 && x<10 |
|| | 逻辑或 | y<10 |
按bit位(一字节占用8bit)来进行运算操作的运算符,对象以bit位为单位
4. 位运算符??(将数值转成二进制后再运算)
运算符 | 名称 | 举例 | 功能说明 |
~ | 位逻辑反,按位取反 | ~a(单目运算) ~0001==1000 | 将变量 a 中的每一位取反 |
& | 位逻辑与 | a & b(双目运算) 1&1==1 1&0==0 | 将变量 a 和 b 逐位进行与操作 |
| | 位逻辑或 | a | b(双目运算) 1|1==1 1|0 == 1 0|0==0 | 将变量 a 和 b 逐位进行或操作 |
^ | 位逻辑异或(不同为真,相同为假) | a ^ b(双目运算) | 将变量 a 和 b 逐位进行异或操作 |
<< | 左移 | a << 4 | 将变量 a 中的每一位向左移动4位 |
>> | 右移 | x >> n | 将变量 x 中的每一位向右移动4位 |
int a=1,b=2;
逗号运算符(优先级最低),从左往右运算
例如 ?a = 2,b = 1;
a = (1,2);//2 ,注意这个不是逗号运算符,因为( )优先级最高,所以是赋值运算
6. 特殊运算符
int?a, b;
int?x[5];
a = 100; // 对变量 a 赋值,正确
3?= 100; // 对常量 3 赋值,错误!
x = 123; // 对数组 b 赋值,错误!
// 连续赋值
a = b = 50; // 先将 50 赋给 b,再将 b 的值赋给 a,正确
// 加减乘除:
a += n;(cpu运行效率高)?// 等价于 a = a+n;//cpu运行效率低
a -= n; // 等价于 a = a-n;
a *= n; // 等价于 a = a*n;
a /= n; // 等价于 a = a/n;
// 求余:
a %= n; // 等价于 a = a%n;
// 位运算:
a &= n; // 等价于 a = a&n;
a |= n; // 等价于 a = a|n;
a ^= n; // 等价于 a = a^n;
a >>= n; // 等价于 a = a>>n;
a <<= n; // 等价于 a = a<<n;
逗号运算符(优先级最低),双目运算符 ?int?a = 1,2;//?2?从左向右运算
逗号最后运行的称为逗号表达式
例如 :a = 2,b = 1
7. 条件运算符??(三目运算符)? ?a>b?m:n
int?a = 100;
int?b = 200;
int?m = (a>b) ? a : b; ?// 如果 a>b 为真,则 m 取 a 的值,否则取 b 的值
8. sizeof 运算符