接着上次的C语言基础知识梳理,让我们来简单了解一下C语言里的操作符
目录
整数的二进制表示形式
算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑运算符
条件操作符-三目操作符
下标引用、函数调用、结构成员访问操作符
隐式类型转换(整型提升)
算术转换
总结
-
整数的二进制表示形式
- 针对负数
- 原码:直接根据数值写出的二进制序列就是原码 。
- 反码:原码 的符号位不变 ,其他位按位取反,就是反码。
- 补码:反码加1,就是补码。
- 针对正整数:原码反码补码相同
- 针对负数
-
算术操作符
- /
6/5为整除,结果是 1;
6.0/5.0结果为1.2,是double类型;
2.%
取模:算的是余数,取模的数必须是整数。
-
移位操作符
- 'a<<1':把a的二进制位向左移动一位(不可负号)
Int a=2;一个整体字符是4个字节,32个比特位
2. 右移
右移操作符使用的是算术右移。
算数右移:右边丢弃,左边补原符号位。(0正,1负)
逻辑右移:右边丢弃,左边补0
-
位操作符
- &按位与
- 按(二进制)位与(只有两个均为真,才为真)
- ‘|’ 按位或
- 二者有一为真,则为真
- ^按位异或
- &按位与
-
赋值操作符
- 直接赋值
- =
- 复合赋值
- +=
- a=a+100==a+=100
- -=
- /=
- >>=
- a=a>>3/a>>=3
- <<=
- %=
- |=
- %=
- +=
- 直接赋值
-
单目操作符
- !—逻辑取反
- If(!flag):如果flag为假,进入If语句
- - 负值
- & —取地址
- Sizeof—操作数的类型长度(以字节为单位)
- sizeof括号中放的表达式,是不参与运算的
- short:2字节;int:4字节。
- ~
- 对一个数的二进制位补码按位取反
- ++
- 前置++:先++再使用
- 后置++:先使用后++
- --
- *
- 解引用操作符-间接访问操作符
- 强制转换(类型)
- Int a =(int)3.14
- !—逻辑取反
-
关系操作符
- 比较两个字符串是否相等,不能使用等号来判断。
-
逻辑运算符
- 要构成逻辑表达式,需要使用逻辑运算符。
若a为真,则!a为假;若a为假,则!a为真
显然,逻辑运算的结果仍然是逻辑值
只要a、b至少一个为真,a||b就为真
2.逻辑非!
只有a、b均为真,a&&b的结果才为真
3.逻辑或||
C语言中有三种逻辑运算符
4.逻辑与&&
只有a、b均为真,a&&b的结果才为真
-
条件操作符-三目操作符
1.b=(a>5?1;-1);
a大于5吗?,如果大于,b等于1,如果不大于,b=-1
2.逗号表达式
-
下标引用、函数调用、结构成员访问操作符
- 下标引用
- Printf("%d\n",arr[4])[]—下标引用操作符
arr和 4是操作数
2.函数调用
1.Menu()];其中的()是函数调用操作符
3.结构成员访问操作符
- ‘.’点操作符
用“.”可以调出结构体内的成员。‘结构体名‘“.”'成员名'
2.‘->’箭头操作符
Pb->name代表pb指向的对象的name
-
隐式类型转换(整型提升)
- C的 整形算术运算总是至少以缺省整型类型的精度来进行
- 为了获得这个精度,表达式中的字符和短整型操作数 在使用之前被转换为普通整形,这种转换称为整型提升
- 整型提升 有符号的数补符号位 ,无符号的数补0
- 整型提升
-
算术转换
如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数的转换为另一个操作数的类型(从低向高转换),否则操作就无法进行。下面的层次体系称为寻常算术转换。(从低到高转换)
总结
如果你读到了这里,非常感谢你能看完的文章,谢谢!!!!
如果你觉得你有些想法和我一样,想和我一起提升自己可以关注私信我,与我一起进步,一起共同努力!!!!!
更多推荐
【C语言】C语言中基础操作符详细讲解
发布评论