前言
本文针对C语言小白速通,不进行详细的C语言原理讲解,主打一个实用,高速,如有问题可在评论区评论,后续会出精讲版,敬请期待!
运算符
C语言中存在特别多运算符,各有所长,大致如表所述
运算符种类 | 作用 | 举例 |
算术运算符 | 用于各类数值计算 | + - * / % |
关系运算符 | 用于比较 | > < != |
逻辑运算符 | 用于逻辑运算 | ! && || |
位操作运算符 | 按二进制进行运算 | & | >> |
赋值运算符 | 赋值 | = |
条件运算符 | 条件求值 | ? : |
指针运算符 | 取内容和取地址 | * & |
按运算符的连接运算分量的个数,运算符可分为
- 单目运算符,例如-5 !a
- 双目运算符,例如a+b x&&y
- 三目运算符,例如a>b?a:b
表达式
运算符和数据构成的式子就叫表达式。例如3+5就是表达式,其表达式也有很多分类,和运算符类似,例如:
表达式种类 | 举例 |
算术表达式 | a+b-c/d |
关系表达式 | a>b a<c |
逻辑表达式 | a&&b |
位操作表达式 | a&b a|b |
赋值表达式 | a=b |
条件表达式 | a>b?a:b |
以上表达式可以组成更复杂的表达式,例如;
int result = a + b * c - d / e % f;
优先级与结合性
上述写了一个复杂的表达式,从整天上看这是一个赋值表达式,但在赋值表达式的右边是一个算术表达式。在一个复杂的表达式中,各个类型的表达式之间是有运算优先级的,同时同一类的表达式的不同运算符也是有优先级的,当同等优先级时,C语言规定了其运算顺序,从左至右或者从用到左。例如:
int result = a + b * c - d / e % f;
在这个表达式中,乘法运算符 *
的优先级高于加法运算符 +
和减法运算符 -
,因此先计算乘法运算 b * c
,然后计算除法运算 d / e
,最后计算取模运算 e % f
。接着,根据优先级规则,先执行加法运算 a + (b * c)
,再执行减法运算 (a + (b * c)) - (d / e % f)
。最终的结果将赋给变量 result
。