大家学习C语言的时候经常会用到许许多多的操作符,今天呢,我就对C语言中一些简单且实用的操作符来做个小小的总结,当然,肯定会有一些纰漏,欢迎大家留言评论进行补充。
其实C语言中的操作符就我们经常使用的来说呢,大致可以有:单目运算符,双目运算符(1.算术运算符,2.逻辑运算符,3.关系运算符,4.移位运算符,5.赋值运算符,6.逗号表达式),三目运算符(条件表达式),前述操作符。
1.单目操作符
! |
逻辑反 |
~ | 按位取反 |
++ | 自增(分为前置++,后置++) |
-- | 自减(分为前置--,后置--) |
- | 负值 |
+ | 正值 |
* | 解引用 |
& | 取地址 |
(type) | 强制类型转换 |
sizeof | 操作数的类型长度(以字节为单位) |
注意:当++,--两个运算符放在变量的前面的时候,表示先对变量进行操作然后再使用。
当放在后面时,就是先使用在进行操作。
2.运算操作符
+ |
加法运算 |
- | 减法运算 |
* | 乘法运算 |
/ | 除法运算 |
% | 取模运算(一个变量/另一个变量取余数) |
例:a=3,b = 5
b/a=1,
b%a=2,
a%b =3
3.逻辑运算符
&& | 逻辑与 | 真&&假——>假 |
|| | 逻辑或 | 真&&假——>真 |
& | 按位与 | 参与运算的两数字二进制相与。对应位上均为1时,结果才为1,否则为0。 |
| | 按位或 | 参与运算的两数字二进制相或。对应位上均为0时,结果才为0,否则为1。 |
^ | 按位异或 | 参与运算的两数字二进制相异或。对应位上相异时,结果才为1,否则为0。 |
例:a=5, b=8
二进制为:a=0101,b=1000(只取了二进制里后四位,前面的所有位都是0)
a&b = 0000
a|b=1101
a^b = 1101
~a = 1010
~b = 0111
4.关系运算符
> | 大于 |
< | 小于 |
>= | 大于等于 |
=< | 小于等于 |
== | 等于 |
!= | 不等于 |
注意:“==”是判断两个数是否相等,而“=”是属于赋值操作
5.移位运算符
<<(左移) | 按二进制形式把所有数字向左移动对应位数,高位舍弃,低位补0 |
>>(带符号右移) | 按二进制形式把所有数字向右移动对应位数,低位舍弃,高位的空位补符号位。 |
>>(无符号右移) | 按二进制形式把所有数字向右移动对应位数,低位舍弃,高位空位补0。 |
例:a = -5
b = 5
a:
原码:1000 0000 0000 0000 0000 0000 0000 0101
反码:1111 1111 1111 1111 1111 1111 1111 1010
补码:1111 1111 1111 1111 1111 1111 1111 1011
b;
原码:0000 0000 0000 0000 0000 0000 0000 0101
反码:0000 0000 0000 0000 0000 0000 0000 0101
补码:0000 0000 0000 0000 0000 0000 0000 0101
则 a << 2 = 1111 1111 1111 1111 1111 1111 1110 1000 = -20(即:为原数据*2^2)
a >> 2 = 1111 1111 1111 1111 1111 1111 1111 1110 = -2 (即:为原数据/2^2)
b <<2 = 0000 0000 0000 0000 0000 0000 0001 0100 = 20(即:为原数据*2^2)
b>>2 = 0000 0000 0000 0000 0000 0000 0000 0001 = 1 (即:为原数据/2^2)
6.赋值运算符
= | 赋值运算符:变量 = 表达式 |
+= | 加后赋值: 变量 += 表达式 |
-= | 减后赋值: 变量-=表达式 |
*= | 乘后赋值: 变量*=表达式 |
/= | 除后赋值: 变量./=表达式 |
%= | 取模后赋值: 变量%=表达式 |
<<= | 左移后赋值: 变量<<=表达式 |
>>= | 右移后赋值: 变量>>=表达式 |
&= | 按位与后赋值: 变量&=表达式 |
|= | 按位或后赋值: 变量|=表达式 |
^= | 按位异或后赋值:变量^=表达式 |
7.逗号表达式
用逗号隔开的多个表达式,从左往右依次计算表达式,逗号表达式的优先级最低。
例:x=1,;y=1;
z=x++,y++,++y
此时的x,y,z分别为2,3,1
因为不仅要考虑逗号表达式,还要考虑优先级问题。
8.条件表达式
条件?表达式1:表达式2
如果条件为真,则表达式1,如果条件为假,则表达式2
例:a = 1;b = 2
c= (a>b)?a+1:b+1
这时C=3
9.前述操作符
1.[]
数组下标引用
接收连个操作数,即:数组名和索引
array[]={1,2,1,3,4,6,7,5,9}
array[4] = 4;
2.()
该操作符可以接受函数名与参数作为操作数。
注意:至少有一个操作数,即函数名
3.结构体成员变量
a. " -> "用于访问结构体成员变量的地址。
b." . " 用于访问结构体成员变量的内容
好了,我的操作符总结已经完成了,希望可以给你带来帮助,当然,如果有查缺补漏,也欢迎留言评论
对了,上面内容中操作符全用红色标识出来了,切勿看错。
好了,不说了,日常打代码去了。