简介
C语言有彝族很丰富的运算符。运算符是操纵数据的工具。运算符是符号,它表示对数据所执行的一些特定操作。C语言定义了四类运算符:算术运算符、关系运算符、逻辑运算符和位运算符。另外,C语言还有一些用于特殊任务的特殊运算符。
3.1表达式
表达式可以是运算符和操作数的有效组合。运算符执行加、减、比较等操作。操作数则是被操作的变量或值。例如,在a+b中,a和b是操作数,“+”是运算符。这几个元素合起来构成了一个表达式。
在程序的执行过程中,变量(如果有)的实际值和表达式中出现的常量一起使用。计算借助于运算符来执行。因此,每一个C表达式都有一个值。
3.2关系运算符和表达式
关系运算符用于测试两个变量或一个变量一个常量之间的关系。
运算符 关系运算
> 大于
>= 大于等于
< 小于
<= 小于等于
= = 等于
!= 不等于
3.3逻辑运算符和表达式
逻辑运算符用语对包含关系运算符的表达式进行合并或取非。
运算符 逻辑运算
&& 与
|| 或
! 非
3.4位运算符和表达式
以操作数12为例。位运算符将数字12视为1100(二进制)。位运算符将操作数视为位而不是数值。数值可以是任意进制的:十进制、八进制或十六进制。位运算符则将操作数转化成二进制,并相应的返回1或0。
运算符 描述
按位与(x&y) 如果两个操作数的相应位均为1,则该位的结果值为1。
按位或(x|y) 如果两个操作数的相应位有一个为1,则该位的结果值为1。
按位取反(~x) 将操作数按位取反
按位异或(x^y) 如果参加运算的两个操作数的相应位同号,则结果为0,异号则为1。
3.5混合表达式和类型转换
在混合表达式中,运算符的操作数属于不同的数据类型,运算时通常会将这些操作数转换为同一类型。将操作数的数据类型转换成较高级别的数据类型,称为“类型升级”。数据类型由低到高的顺序是:char<int<long<float<double
不同类型运算符之间的优先级
运算符 优先级
()(小括号)[](数组下标).(结构成员)->(指针型结构成员) 1(最高)
!(逻辑非)~(位取反)-(负号)++(加1)--(减1)&(变量地址) 2
*(指针所指内容)type(函数说明)sizeof(长度计算) 3
*(乘) /(除) %(取模) 4
+(加) -(减) 5
<<(位左移) >>(位右移) 6
<(小于) <=(小于等于) >(大于) >=(大于等于) 7
= =(等于) !=(不等于) 8
&(位与) 9
^(位异或) 10
|(位或) 11
&&(逻辑与) 12
||(逻辑或) 13
??表达式) 14
= += -=(联合操作) 15
,(逗号运算符) 16(最低)
总结
√C定义了四种运算符:算术运算符、关系运算符、逻辑运算符和位运算符。
√C中所有的运算符都遵守一定的优先级顺序。
√关系运算符用语测试两个变量或一个变量和一个常量之间的关系。
√逻辑运算符用于对含关系运算符的表达式进行合并或取非。
√位运算符将操作数视为位而不是数值。
√赋值号(=)被视为具有从右到左的结合律的运算符。
√优先级建立了计算表达式时,一组运算符相对于另一组运算符的层次关系。