前言
本文不涉及讲解原理,用简洁明了的风格,去整理方便查阅的知识点。
(适合有编程基础,或者需要作为笔记的人群使用)
运算优先级
分为优先级15级:
1、圆括号【()】、下标运算符【[]】、分量运算符的指向结构体成员运算符【->】、结构体成员运算符【.】;
2、逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++】【 --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算符和取地址运算符【*】【&】、长度运算符【sizeof】;
3、乘法运算符【*】、除法运算符【/】、取余运算符【%】;
4、加法运算符【+】、减法运算符【-】;
5、左移动运算符【>】;
6、关系运算符【】【= 】;
7、等于运算符【==】、不等于运算符【!=】;
8、按位与运算符【&】;
9、按位异或运算符【^】;
10、按位或运算符【|】;
11、逻辑与运算符【&&】;
12、逻辑或运算符【||】;
13、条件运算符【?:】;
14、赋值运算符【=】【/=】【*=】【%=】【+=】【-=】【>=】【&=】【^=】【|=】;
15、逗号运算符【,】。
单双三目运算符
单目运算符:只对一个数自身进行运算(++,--)
双目运算符:对两个数进行运算(+,-,*,/)
三目运算符:对三个数进行运算(_?_:_)
算数运算符
运算符:
符号 | 作用 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
规则事项:
1.同类型运算,结果为相同类型(两整型相除结果是整型,忽略掉小数,再转化为它本身的类型)
2.求余运算,两数必须为整数。正负由被除数决定。
自运算符
运算符:
符号 | 作用 |
++ | 自己加一 |
-- | 自己-1 |
特点:
相当于单独的一行a=a+1或者a=a-1
他相当于先执行printf("",a),再执行a=a+1。
同理:++a相当于先执行a=a+1在执行语句。
关系运算符
符号
符号 | 描述 |
---|---|
> | 大于 |
< | 小于 |
== | 等于 |
!= | 不等于 |
<= | 小于等于 |
>= | 大于等于 |
特征
条件成立返回1(真),不成立返回0(假)。
假是0,真可以是任何不为0的数。
逻辑运算符
符号
常用于if等结构语句中
符号 | 代表含义 |
---|---|
&& | 并且(两条件都满足返回1) |
|| | 或(两条件满足一个就返回1) |
! | 非(0返回1,1返回0) |
短路特性
||(或),当左边是真,结果就已经知道是真了,右边就不执行了。
连续比较先前再后
他不能连续比较。
比如a<1<b,他会先比较a<1,返回0或者1,再拿0或者1跟b比较。
赋值运算符
比较简单理解:
a=a+1可以写为:a+=1
类似的a-=1等都是一样的。
逗号运算符
在for的条件中使用,其实就是相当于;让你在条件中能执行多个语句,但是他只按照最后一个标准判断是不是true。
第一个满足,最后一个不满足不执行
只有最后一个满足才执行。因为死循环不演示了。
sizeof返回数据占据的字节数
强制转换符
格式:(类型) 转换内容或变量
用于强制转换数据类型,但可能会让数值大小变化。
转化为整型后0.5被自动舍去结果为14.000
不同类型数据混合运算
他会自己转化为精度比较高的类型。
char会转化为int
float会转化为double