C语言运算符
自增自减运算符
自增自减运算符
++ 变量中的值+1
-- 变量中的值-1
计算规则:单独写成一行,(先/后)的结果一样
应用于+1计算、统计
练习:
实际上a++;与a = a + 1;运行结果相同
自增自减参与计算
- 情况一:先用后加
int a = 10;
int b = a++;
则该结果为10,因为是a是先赋值给b,然后再加一,故b = 10
- 情况二:先加后用
int a = 10;
int b = ++a;
则该结果为11,因为a是先加一,然后再赋值给b,故b = 11
- 情况三:不管是先加后用,还是先用后加,继续计算时所用的值是计算后新的值,不是原来的了
eg.:
- 练习
前提注意:
- 前缀优先于后缀
- 前缀统一自增/自减,再把结果拿出来用
- 后缀统一先用,等整个表达式算完结果,再进行自增,此时会改变自身的值,但是要注意此时自增的值要在前缀已经自增好的值上自增
- 后缀先用后加一定要等式子中的变量都用完了计算完了,才能进行自增或自减(混搭2)
例如:
分析过程:先算前缀,++i = 11,--j = 4,此时i = 11,j = 4,然后统一用后缀,即k = 11 + 11 - 4 -11 = 7,最后再算后缀,即i = 11,j = 4(此处i为11是因为i++和i--抵消了)
但是,以上是在Windows中的情况,
若是在mac、Linux中,则:
- 前缀和后缀的优先级一样
- 是从左到右依次计算的
- 每一个前缀和后缀都是一个独立的个体
所以,在mac、Linux中,结果为6,k = 10 + 12 - 4 - 12 = 6,分析:根据先用后加i++为10,此时i = 11,根据先加后用,i++为12,此时i = 12,--j为4,i--为12(先用后减),此时i = 11,故结果为k = 6,i = 11, j = 4
混搭1:
混搭2:
其他运算符
1.赋值运算符
+= | -= | *= | /= | %= |
把左边和右边进行计算,然后把结果赋值给左边,右边不变,没有影响
eg.: a += b;就是把a+b的结果赋值给a,然后b不变,对b没有影响
( =为赋值 )
此处同样要注意计算完第一步赋值后a的值发生改变,到第二部时要用新的值计算
2.关系运算符
== | != | > | >= | < | <= |
关系运算符是用来判断该等式或不等式关系是否成立,若成立则为1,反之则为0
( != 为不等于 )
注意:关系运算符不能连着写,比如:1 < a <10,这是错误写法,赋值也不能连着写,比如:a = b + 2 = c + 1
运用:
注意: 关系运算符得到的结果只有0和1, 不会有计算结果的
3.逻辑运算符
符号 | 作用 | 说明 |
&& | 与(而且) | 两边都成立,结果才成立,否则就不成立(同时满足) |
|| | 或(或者) | 两边都不成立,结果才不成立(二选一) |
! | 非(取反) | 原本是成立,取反结果就是不成立,反之一样(取反) |
- &&是两者都,即两边都要成立才行
- ||是或者,即只要有一边成立就行,两边都不成立,结果才不成立
- !是取相反意思
- 结果:1就是成立,0就是不成立
- 注意:若两次取反,则结果又变回去了,但实际只用一个取反
- && || 可以连续写多个
- 多个&&表示同时满足多个条件
- 多个 || 表示在多个条件中,只要满足一个即可
运用:
混搭:
- 若在式子中出现++b,则若++b结果为0,则不成立,若非0,则成立
4.三元运算符
格式: 关系表达式 ? 表达式1 : 表达式2
举个例子:
分析:
关系表达式:a > b 表达式1:a 表达式2:b
若关系表达式成立,则结果为表达式1,若不成立,则为表达式2
5.逗号运算符(分隔符)
格式:表达式1,表达式2,表达式3,……,表达式n
规则:
- 从左到右
- 最后一个子表达式的结果,是整表达式的结果
- 优先级最低(永远是最后执行)
注意:
- 若表达式中含有自增自减,则不用按照先用后加,不需要等所有变量用完再加,因为是按从左往右进行,逗号是最后执行的
- 若有多个逗号,要把整个表达式用括号括起来,不然在输出时就会被当做多个参数无法运行
运用:
注意:(在实践中产生的一些问题)
6.运算符的优先级
运算符 | 名称 |
() | 括号 |
++、-- | 自增自减 |
+、- 、! | 正号、负号、逻辑运算符(取反) |
*、/、% | 乘、除、取余 |
+、- | 加、减 |
>、>=、<、<= | 关系运算符 |
==、!= | 关系运算符 |
&& | 逻辑运算符(而且) |
|| | 逻辑运算符(或者) |
? : | 三元运算符 |
=、*=、/=、%=、+=、-= | 赋值运算符 |
, | 逗号运算符 |
混搭练习:
技巧:
- 从左边的第一个问号开始往后找冒号
- 如果过程当中,遇到了其他问号,那么找冒号的数量要加一
优先级混搭练习: