C语言中各类的操作符

操作符的分类:

在C语言中操作符有:算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用和结构成员

1、算术操作符

算术操作符顾名思义主要是用于计算的操作符,它们有+   -   *   /   %这五种操作符,其中前面三种都很好理解都差不多,我们主要讲剩余的两个算术操作符。

以下是加法操作符的用法

C语言中各类的操作符_第1张图片

(1). 这五种算术操作符中除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
(2). 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。

C语言中各类的操作符_第2张图片
(3). % 操作符的两个操作数必须为整数。返回的是整除之后的余数

 C语言中各类的操作符_第3张图片

2、移位操作符

移位操作符中有两种操作符:<<左移操作符   >>右移操作符 ,移位操作符移动的是二进制位

原码 反码 补码

移位操作符移动的是二进制位,整数的二进制位的表达方式有:原码、反码、补码。注意:移位操作符的操作数只能用整数。

正整数的原码、反码、补码相同,是将整数变成二进制的结果

负整数的原码是将整数变成二进制

               反码是符号位不变,其余位按位取反

               补码是在反码的基础上在末尾加上1

整数在内存中存的是补码,使用的时候也是用的补码

一个整数是4个字节在写成二进制序列时就是32个bit位,对于有符号的整数来说,最高位是符号位符号位是1表示负数

符号位是0表示正数

对于无符号整数来说,没有符号位,所以位都是有效位

左移操作符

<<左移操作符的移位规则是:左边抛弃、右边补0

C语言中各类的操作符_第4张图片

 

右移操作符

 >>右移操作符的移位规则有两种分别是:(1). 逻辑移位左边用0填充,右边丢弃

                                                                   (2). 算术移位左边用原该值的符号位填充,右边丢弃

C语言中各类的操作符_第5张图片

 警告:对于移位运算符,不要移动负数位,这个是标准未定义

3、位操作符

位操作符有三种分别是:&按位与 、|按位或、^按位异或, 注意:他们的操作数必须是整数

C语言中各类的操作符_第6张图片

 4、赋值操作符

赋值操作符可以对你不满意的一个值进行重新赋于一个新的值

C语言中各类的操作符_第7张图片

 C语言中各类的操作符_第8张图片

复合赋值符

 +=   -=   *=   /=   %=   >>=   <<=   &=   |=

int x = 10;
x = x+10;
x += 10;//复合赋值
//其他运算符一样的道理。这样写更加简洁

5、单目操作符

单目操作符有:

!
-
+
&
sizeof
~
--
++

逻辑反操作
负值
正值
取地址
操作数的类型长度(以字节为单位)
对一个数的二进制按位取反
前置--是先减后使用、后置--是先使用后减

前置++是先加后使用、后置++是先使用后减

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

 C语言中各类的操作符_第9张图片

 sizeof 是在计算类型创建变量或者变量的大小,单位是字节

sizeof 计算的结果是size_t 类型的

size_t 是无符号整型的

对size_t 类型的数据进行打印,可以使用%zd

sizeof 后面的括号在括号中写的不是类型的时候,括号可以省略,这样就说sizeof不是函数

sizeof是操作符 - 单目操作符

6、关系操作符

关系操作符分别有:>   >=   <   <=   != 用于测试“不相等”   == 用于测试“相等”

7、逻辑操作符

逻辑操作符有:&&逻辑与  ||逻辑或

C语言中各类的操作符_第10张图片

 区分逻辑与和按位与
区分逻辑或和按位或

 1&2----->0
1&&2---->1
1|2----->3
1||2---->1

你可能感兴趣的:(c语言,开发语言)