C语言中的操作符
c语言中的操作符可分为:
1 算术操作符
2 移位操作符
3 位操作符
4 赋值操作符
5 单目操作符
6 关系操作符
7 逻辑操作符
8 条件操作符
9 逗号表达式
10 下标引用、函数调用和结构成员
1.算术操作符
+ - * / %
注意:%的两个操作数必须为整型
* 和 / 各自的两个操作数只要其中至少有一个为浮点型,则计算出的值即为浮点型
2.移位操作符
左移 << 右移 >>
左移 <<:
将一个数的补码二进制序列整体向左移动一个bit位,并自动在此序列右端补0;
右移 >>:
将一个数的补码二进制序列整体向右移动一个bit位,并自动在此序列左端补0;
3.位操作符
按位“与” &
按位“或” |
按位“异或” ^
按位取反 ~
比如:&
int a = 1;//0000 0001
int b = 3;//0000 0011
int tmp;
tmp = a & b;//只有两数的二进制补码序列同一位置均是1,a&b的值对应的位置才为1:0000 0001
|
int a = 1;//0000 0001
int b = 3;//0000 0011
int tmp;
tmp = a | b;//只有两数的二进制补码序列同一位置至少一个是1,a|b的值对应的位置即为1:0000 0011
^
0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0
即相应位的值相同的,结果为 0,不相同的结果为 1。
~
按位取反运算是单目运算,用来求一个位串信息按位的反,即哪些为0的位,结果是1,而哪些为1的位,结果是0。
4.赋值操作符
= += -= *= /= <<= >>=
== 直接赋值
+=,-=,*=,/= 先计算,后赋值
<<= 先左移一个bit位,后赋值 >>= 先右移一个bit位,后赋值
5.单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
- - 前置- -;后置- -
++ 前置++;后置++
* 简介访问操作符(解引用操作符)
(类型) 强制转换类型
注:后置++ (- -) 的用法为先引用、后运算;前置++(- -) 的用法为先运算,后引用
6.关系操作符
> >= < <= == !=
注意: ==和=的区别
7.逻辑操作符
逻辑"与" &&
逻辑"或" ||
非 !
8.条件操作符
exp1 ? exp2 : exp3
表达式1的值为真,执行表达式2;表达式1的值为假,执行表达式3.
9.逗号表达式
用逗号隔开的多个表达式
exp1 , exp2 ,exp3,…… expn
从第一个表达式开始执行,直到执行到最后一个表达式,并且以最后一个表达式的值作为整个逗号表达式的值
10.下标引用,函数调用和结构成员
1.[ ] 下标引用操作符
操作数:一个数组名 + 一个索引值
2.( ) 函数调用操作符 接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数
3.访问一个结构的成员
. 结构体.成员名
-> 结构体指针->成员名