总结:C语言操作符

一、算术操作符

1.+ (加)
2.- (减)
3. *(乘)
4. / (除)
5. % (取模)

特别说明:

(1)%操作符的两个操作数必须是整数,返回的是整除之后的余数,如5%2返回的是1。
(2)若/操作符的两个操作数都是整数,则执行整数除法;若其中有操作数是浮点数,则执行浮点数除法。

二、移位操作符

  1. << (左移操作符)
  2. >> (右移操作符)

移位规则:

(1)左移:(*2的效果)
左边丢弃,右边补0
如b=a<<1:a不变,b为a左移1位后的结果
(2)右移:(/2的效果)
逻辑移位:左边补0,右边丢弃
算术移位:左边补原来的符号位,右边丢弃(编译器通常采用)
(3)移位不要移动负数位,这是标准未定义的。
(4)浮点数不能移位

三、位操作符

1.& (按位与)
2. | (按位或)
3. ^ (按位异或)

例如:

    5 ——> 0101
    3 ——> 0011
    5&3 ——> 0001 ——> 1
    5|3 ——> 0111 ——> 7
    5^3 ——> 0110 ——> 6

特别说明:

(1)位操作符的操作数必须是整数
(2)位运算都是用补码运算

四、赋值操作符

  1. =
  2. 复合赋值符
    (1) +=
    (2) -=
    (3) *=
    (4) /=
    (5)%=
    (6)>>=
    (7) <<=
    (8) &=
    (9) ^=
    (10) |=

五、单目操作符

  1. (逻辑反操作)
  2. - (负值)
  3. + (正值)
  4. & (取地址)
  5. sizeof (操作数的类型长度,以字节为单位)

(1)sizeof(变量),其中( )可以省略,说明sizeof不是函数,对于函数来说,它后面的( )不可以省略。
(2)sizeof(类型),其中( )不可以省路,此时sizeof仍不是函数。
(3)sizeof( )内部的表达式不参与计算
例如:int a=10 , b=20; sizeof(b=a+5 );
程序执行完后:a为10,b为20
sizeof(b=a+5)在编译期间就已经运算,根据表达式的类型属性计算可得出4;而变量a和b在链接时才开始创建,b=a+5没有机会去执行,故而a和b不变。

  1. ~(对一个数的二进制按位取反)
  2. --(前置、后置- -)

(1)- -a :a先自减,再使用a
(2)a- - :先使用a,a再自减

  1. ++(前置、后置++)

(1)++a :a先自增,再使用a
(2)a++:先使用a,a再自增

  1. *(间接访问操作符,解引用操作符)
  2. (类型) (强制类型转换)

六、关系操作符

  1. >
  2. >=
  3. <
  4. <=
  5. != (不相等)
  6. == (相等)

七、逻辑操作符

  1. && (逻辑与)
    a&&b:a和b都为真时,结果为真,否则为假
  2. || (逻辑或)
    a||b:a和b都为假时,结果为假,否则为真
  3. (逻辑反)

八、条件操作符

exp1 ? exp2 : exp3
exp1为真,整个表达式的结果为exp2的结果,否则为exp3的结果。

九、逗号表达式

exp1 , exp2 , exp3 , ...
从左向右依次执行,整个表达式的结果是最后一个表达式的结果,而且前面的运算会影响到最后一个表达式的结果。

十、下标引用、函数调用和结构成员

  1. []
    操作数:一个数组名 + 一个索引值
    例如:arr[10],[ ]的操作数是arr和10
  2. ()
    函数调用操作符,接受一个或多个操作数,第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
  3. 访问一个结构的成员
    (1) .
    结构体 . 成员名
    (2)->
    结构体指针 -> 成员名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值