本讲我们主要介绍C语言中的运算符,在C语言中运算符主要分为算术运算符,比较运算符,逻辑运算符,位运算符,逗号运算符。
目录
一,算术运算符
运算符 | 含义 | 举例说明 |
+ | 定义三个操作数,把两个操作数进行相加求和作为第三个操作数 | int a,b,c; a+b=c |
- | 定义三个操作数,使用一个操作数去减去另一个操作数求差作为第三个操作数 | int a,b,c; a-b=c |
* | 定义三个操作数,将两个操作数相乘求积作为第三个操作数。 | int a,b,c; a*b=c |
/ | 定义三个操作数,一个做为分子,一个作为分母,使用分子除以分母得到商作为第三个操作数 | Int a,b,c a/b=c |
% | 取模运算符,定义三个操作数,一个做为分子,一个作为分母,使用分子除以分母得到整除后的余数作为第三个操作数 | int a,b,c a%b=c |
++ | 自加运算符,在原数值的基础上加一 | a++ a=a+ |
-- | 自减运算符,在原数的基础上减一 | a-- a=a-1 |
注:/ : 除法,如果两个是整数相除,得到的结果还是整数,会自动舍弃小数部分。
如果参与运算的两个数中有浮点数,那么结果就⼀定是浮点数
自增和自减运算符只能用于变量,不可用于常量或表达式。此外++a与a++是不同的(--a和a--亦同)。例如:a[b++]=10,若b=2,输出的结果为:a[2]=10,b=3先执行操作,再进行自加; a[++b]=10,若b=2,输出的结果为b=3,a[3]=10.先进行自加,在执行操作。
在取余运算中,进⾏运算的两个数只能是整数,不能有浮点数
二,比较运算符
运算符 | 含义 | 举例说明 |
== | 判断两个数是否相等,相等为真,否则为假。 | (a==b)为假 (a==a)为真 |
!= | 判断两个数是否相等,不相等为真,否则为假。 | (a!=b)为真 (a!=a)为假 |
> | 判断左边的数是否大于右边的数,大于为真,否则为假 | (a>b)为真 (a<b)为假 |
< | 判断左边的数是否小于右边的数,小于为真,否则为假 | (a>b)为假 (a<b)为真 |
>= | 判断左边的数是否大于或等于右边的数,大于或等于为真,否则为假 | (a>=b)为真 (a<=b)为假 |
<= | 判断左边的数是否小于或等于右边的数,小于或等于为真,否则为假 | (a>=b)为假 (a<=b)为真 |
注:比较运算符,只有两种结果,如果关系成⽴,结果为1,也就是“真”;如果关 系不成⽴,结果为0,也就是“假”
如果是多个关系运算符连续使⽤,则是先把第⼀个关系运算符进⾏运 算,然后把运算结果与第⼆个关系运算符进⾏运算
浮点数进⾏⽐较运算时,都有精度问题,所以避免使⽤ == 来进⾏浮点 数判断相等
三,逻辑运算符
运算符 | 含义 | 举例说明 |
&& | 逻辑与运算符,只有两边同时为真才为真,否则为假。 | (a&&b)a!=0,b!=0则为真。 |
|| | 逻辑或运算符,只要有一边为真,则为真,两边同时为假时才为假 | (a||b)a!=0或者b!=0则为真 a==0并且b==0为假 |
! | 逻辑非运算符,将真变为假,将假变为真 | (!a)a==0时,变为a==1 a==1时,变为a==0 |
注:逻辑运算符运算结果:1或0,1表⽰真,0表⽰假 逻辑运算符主要作⽤就是连接多个表达式,进⾏确定是否成⽴
在C语⾔规定,任何数值都有真假, 真:只要 ⾮0数值,就表⽰真(成⽴) 假:只要数值为0,就表⽰假(不成⽴)
四,位运算符
运算符 | 含义 | 运算规则 | 举例说明 |
& | 位与运算符,把两个数值中的每⼀位⼆进制进⾏⽐较,当两个数值⼆进制 位都为1时,这⼀位结果就为1,否则为0 | 同一为一,否则为0 | a=1=0001,b=2=0010 a&b=0000 |
| | 位与运算符,把两个数值中的每⼀位⼆进制进⾏⽐较,当两个数值⼆进制 位都为1时,这⼀位结果就为1,否则为0 | 有一为一,全零为零 | a=1=0001,b=2=0010 a|b=0011 |
~ | 把⼀个数据的⼆进制按位取反 | 取反 | a=0000; a~=1111 |
^ | 异或运算符,把两个数值中的每⼀位⼆进制进⾏⽐较,当两个数值⼆进制 位不同时(其中⼀个为1,另⼀个为0)这⼀位的结果就为1,否则为0 | 相同为零,不同为一 | a=1=0001,b=2=0010 a^b=0011 |
<< | 左移运算符,把⼀个数值中每⼀位都左移指定的⼤⼩,低位补0 | 低位向高位移位,右边的向左边移位,低位补零 | a=0001 a<<2=0100 |
>> | 右移运算符,把⼀个数值中每⼀位都右移指定的⼤⼩,⾼位补之前的最⾼ 位值(符号位) | 高位向低位移位,左边的向右边的移位,高位补零 | a=1000 a>>2=0010 |
五,赋值运算符
运算符 | 含义 | 举例说明 |
= | 基本赋值运算符,将右边的值赋值给左边 | a=b,就是将b赋值给a |
+= | 加权赋值运算符,将左边的值相加右边的值后的结果赋值给左边的值 | a+=b,就是将a+b=a |
-= | 减权赋值运算符,将左边的值减去右边的值得结果赋值给左边的值 | a-=b,就是将a-b=a |
*= | 乘权赋值运算符,将左边的值乘上右边的值后的结果赋值给左边的值 | a*=b即为a*b=a |
/= | 除权赋值运算符,将左边的值除以右边的值的结果赋值给左边的值。 | a/=b即为a/b=a |
%= | 取模且赋值运算符,将左边的值对右边的值进行取余的结果然后赋值给左边的值。 | a%=b即为a%b=a |
>>= | 右移且赋值运算符,将左边的值右移后赋值给左边的值 | a<<=b即为a<<b=a |
<<= | 左移且赋值运算符,将左边的值左移后赋值给左边的值 | a<<=b即为 a<<b=a |
&= | 按位与且赋值运算符,将左边的值与右边的值想与后赋值给左边 | a&=b即为a&b=a |
^= | 按位异或且赋值运算符,将左边的值与右边的值进行异或后赋值给左边的值。 | a^=b即为a^b=a |
|= | 按位或且赋值运算符,将左边的值与右边的值进行x相或后赋值给左边的值。 | a|=b即为a|b=a |
六,逗号运算符
将多个表达式写在⼀起,从左⾄右依次运算每个表达式,同时把最后⼀个表 达式的运算结果作为整个逗号运算符运算的结果。
七,运算符中的优先级