C语言中的操作符可分为::
1.算术操作符
2.移位操作符
3.位操作符
4.赋值操作符
5.单目操作符
6.关系操作符
7.逻辑操作符
8.条件操作符
9.逗号表达式
10.下标引用
11.函数调用
12.结构成员
1.算术操作符
+ 加 与数学中的一样
- 减 与数学中的一样
* 乘 与数学中的一样
/ 除 这是默认取整的除法(向下取整),若想结果保留小数,则除数和被除数最少有一个是浮点数。
% 取余 两端的数必须是整型,右端不能为0.
2.移位操作符
移动的是二进制位。
整数的二进制表示形式有三种:原码,反码,补码。
原码:直接根据数值写出的二进制序列就是源码(对于负数而言,最高位是1,其余位依据去掉负号的数值写出即可)。举例:-1的原码为:10000000 00000000 00000000 00000001,而1的原码为:00000000 00000000 00000000 00000001 ,显然,它们仅仅在最高位(符号位)上有差别。
反码:原码的符号位不变,其它位按位取反就是反码
补码:反码加1,就是补码
还是以-1为例,它的三种表现显形式分别为:
原码:10000000 00000000 00000000 00000001
反码: 11111111 11111111 11111111 11111110
补码; 11111111 11111111 11111111 11111111
需要知道的是:内存中存储的是数据的补码(包括0),而正数的原码,反码,补码是相同的。
<< 左移位操作符 格式为:标识符<<n n为移动的位数
移动规则:左边丢弃,右边补0,相当于乘2
>> 右移位操作符 格式为:标识符>>n n为移动的位数
算术右移移动规则:右边丢弃,左边补原符号位,相当于除2
逻辑右移移动规则:右边丢弃,左边补0,
我们通常遵循的是算术右移规则
此处结果为-3是因为-5/2结果为-2.5,需要向下取整。
3.位操作符
此处的位是二进制位,且操作数必须是整数
& 按位与 逻辑与是&&
使用格式位:操作数1 & 操作数2 对两个数的每一位二进制位进行按位&操作:任意一位为0则为0,两位都为1才是1。
0000 1111 15
& 0000 0001 &1
0000 0001 1
即 15&1=1
| 按位或 逻辑或是||
使用格式位:操作数1 | 操作数2 对两个数的每一位二进制位进行按位|操作:任意一位为1则为1,两位都为0才是0。
0000 1111 15
| 0111 1111 | 127
0111 1111 127
即 15 | 127=127
^ 按位异或
使用格式位:操作数1 ^ 操作数2 对两个数的每一位二进制位进行按位^操作:如果两个操作数对应的位不一样,则结果为1,否则为0。
0000 0011 3
^ 0000 0101 ^ 5
0000 0110 6
即 3^5=6
4.赋值操作符
= 不建议连续赋值
+=
-=
*=
/=
%=
>>=
<<=
a=b→意为将b的值赋给a,b保留原先的值。
a+=b →a=a+b,余下的与其相似
5.单目操作符
单目操作符是只有一个操作数的操作符
! 逻辑反
使用结构为: !a 只有右边一个操作数,意为逻辑取反,即若a为真,则 !a为假,若a为假,则!a为真。
- 负值
使用结构为:-a 只有右边一个操作数,意为数值取反,即若a为1,则-a为-1,若a为-1,则a为1。
+ 正值 没有什么实际意义,经常省略。
& 取地址操作符 注意区别与按位与操作,按位与是双目操作符,取地址操作符是单目操作符
* 间接访问操作符(解引用操作符)
详解见:https://mp.csdn.net/mp_blog/creation/editor/126272240
sizeof 求操作数的类型长度(以字节为单位) 可以计算变量,类型,数组
详见:https://mp.csdn.net/mp_blog/creation/editor/126211677
注意:1.sizeof在计算大小时,对变量名可以省略(),但是对数据类型不可以省略(),由此也可以证明sizeof不是函数,而是一个操作符。
2.sizeof 括号内部的表达式不参与运算
~ 对一个数的二进制位按位取反,包括符号位,即0变为1,1变为0
使用格式为:操作数2=~操作数1
-- 前置--:--a 或 后置-- :a++
++ 前置++:++a 或 后置++:a++
后置意为先使用后++/--,前置意味着先++/--,后使用。
(类型) 强制类型转换 使用格式为:(类型x)操作数 意味将操作数强行转换为类型x的类型数
6.关系操作符
> 大于
>= 大于等于
< 小于
<= 小于等于
!= 逻辑判断——不等于
== 逻辑判断——等于 区别与一个“=”,意味赋值
注意:==不能用于判断两个字符串是否相等
7.逻辑操作符
&& 逻辑与 双目操作符
使用结构为:a&&b a或b有一个为假,则为假,同时为真才为真。并且,若a为假,则整个表达式结果为假,后续不再计算b的值。
|| 逻辑或 双目操作符
使用结构为:a||b a或b有一个为真,则为真,同时为假才为假。并且,若a为真,则整个表达式的值为真,后续不再计算b的值。
对于逻辑操作符,只看真假,最后结果为0或非0,0为假,非0为真。
8.条件操作符
也称为三目操作符(唯一)
格式为:表达式1?表达式2:表达式3 意为若表达式1为真,则运算结果为表达式2,否则运算结果为表达式3
9.逗号表达式
由逗号隔开的一串表达式,逗号表达式要从左向右依次计算,但是整个表达式结果为最后一个表达式的值。
10.下标引用
[ ] 下标引用操作符 结构为:数组名[下标值 ] 数组名和下标值准确定位到了具体数组的具体值。
详细访问另一篇介绍数组的文章:https://mp.csdn.net/mp_blog/creation/editor/126436919
11.函数调用
() 函数调用操作符
详细访问另一篇介绍数组的文章:https://mp.csdn.net/mp_blog/creation/editor/126391391
12.结构成员
结构体访问操作符有两种:分别是 . 和 →
. 格式为:结构体变量名.成员名
→ 格式为:结构体指针→成员名
本文代码链接为:https://github.com/qigezongdui/C-