C语言整理:2.1 运算符

        C语言运算符是对C语言数据进行处理的记号,按照相关性大概分为算术运算符,逻辑运算符,关系运算符,位运算符和其他一些比较杂的运算符。C11上有很多种,具体参考《6.5 Expressions》。这里为了简化才如此划分,为了归类叙述方便而已。

        具体运算符,归纳在了下面的表格中。

运算符类型记号示例说明
算术运算+a+b算术加法。
-a-b算术减法。
*a*b算术乘法。
/a/b算术除法,对于两个整型来说是整除。
%a%b求余运算。
++a++或++a自增运算。a++先使用a的值,再自增;++a,先自增再使用a的值。
--a--或--a自减运算。a--先使用a的值,再自减;--a,先自减再使用a的值。
逻辑运算&&a && b与或非的逻辑运算按照真值表来进行,结果是个布尔值。
||a || b与或非的逻辑运算按照真值表来进行,结果是个布尔值。
!!a与或非的逻辑运算按照真值表来进行,结果是个布尔值。
关系运算!=a != b判断a和b是否不等,不等为真,相等为假。
==a == b判断a和b是否相等,相等为真,不等为假。
>a > b判断a是否大于b,是则为真,否则为假。
>=a != b判断a是否大于等于b,是则为真,否则为假。
<a < b判断a是否小于b,是则为真,否则为假。
<=a <= b判断a是否小于等于b,是则为真,否则为假。
位运算&a & b比特与运算,a和b的二进制位相与得到的结果。
|a | b比特或运算,a和b的二进制位相或得到的结果。
~~a比特取反运算,a的二进制位取反得到的结果。
^a ^ b比特异或运算,a和b的二进制位相异或得到的结果。
<<a << 1比特左移运算,a的二进制位左移一位,右侧补0。
>>a >> 1比特右移运算,a的二进制位右移以为,左侧补0。
赋值运算=a = 0将a赋值为0。
+=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 = a << b。
>>=a >>= b相当于a = a >> b。
三目运算?:x = a ? b : c如果a为真,则x被赋值为b,否则被赋值为c。
下标运算[]a[0]获取数组a的第0个元素。
逗号运算,a++,b++,c=0;逗号运算符的值是最后一个表达式的值,这里是0.
取址运算&&a获取变量a的地址值
取值运算**a获取变量a的地址空间
成员选择.a.b获取结构体(联合体)变量a的成员b
成员选择->a->b获取结构体(联合体)指针变量a的成员b
长度运算sizeofsizeof(a)类型a在内存中占用的内存长度,单位byte。

        C语言的运算符之间有优先级,即在同一语句里面,先计算哪个运算,后计算哪个运算,这个称之为结合性。C语言结合性较为复杂,一般建议使用()来显式表达计算结合性,这样简单明了,方便开发阅读和维护。

        一般优先级从高到低是取址寻址成员选择(单目),算术运算,位运算,逻辑运算,具体可以参考百度百科《运算符优先级》。这里也简单罗列如下,方便查阅。

优先级运算符
1[]    ()    .    ->
2-(负号)    ++    --    *(取值)    &(取址)    !    ~    sizeof
3/    *(乘)    %
4+    -(减)
5<<    >>
6>    >=    <    <=
7==    !=
8&(按位与)
9^
10|
11&&
12||
13?:
14=    +=    -=    *=    /=    %=    &=    ^=    |=    <<=    >>=
15,(逗号运算)

 

参考资料:百度百科《运算符优先级》

                    C11标准

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值