.
C语言运算符大全
C 语言的内部运算符很丰富,运算符是告诉编译程序执行特定算术或逻辑操作的符号。 C 语
言有三大运算符:算术、关系与逻辑、位操作。另外, C 还有一些特殊的运算符,用于完成
一些特殊的任务。
2.6.1 算术运算符
表 2-5 列出了 C 语言中允许的算术运算符。在 C 语言中,运算符“ + ”、“-”、“* ”和“ / ”
的用法与大多数计算机语言的相同,几乎可用于所有 C 语言内定义的数据类型。当“ / ”被
用于整数或字符时,结果取整。例如,在整数除法中, 10/3=3 。
一元减法的实际效果等于用 -1 乘单个操作数, 即任何数值前放置减号将改变其符号。 模运算
符“ %”在 C 语言中也同它在其它语言中的用法相同。切记,模运算取整数除法的余数,所
以“ % ”不能用于 float 和 double 类型。
最后一行打印一个 0 和一个 1,因为 1/2 整除时为 0,余数为 1,故 1%2 取余数 1。
2.6.2 自增和自减
C 语言中有两个很有用的运算符, 通常在其它计算机语言中是找不到它们的—自增和自减运
算符, ++ 和 -- 。运算符“ ++ ”是操作数加 1,而“ --”是操作数减 1,换句话说: x=x+1; 同
++x;x=x-1; 同--x;
自增和自减运算符可用在操作数之前,也可放在其后,例如: x=x+1 ;可写成 ++x ;或 x++ ;
但在表达式中这两种用法是有区别的。 自增或自减运算符在操作数之前, C 语言在引用操作
数之前就先执行加 1 或减 1 操作;运算符在操作数之后, C 语言就先引用操作数的值,而后
再进行加 1 或减 1 操作。请看下例:
x=10;
;y=++x;
此时, y=11 。如果程序改为:
x=10;y=x++;
则 y=10 。在这两种情况下, x 都被置为 11,但区别在于设置的时刻,这种对自增和自减发
生时刻的控制是非常有用的。在大多数 C 编译程序中,为自增和自减操作生成的程序代码
比等价的赋值语句生成的代码
要快得多,所以尽可能采用加 1 或减 1 运算符是一种好的选择。
。下面是算术运算符的优先级:
:最高 ++ 、-
--
- (一元减)
* 、/ 、 %最低 + 、-编译程序对同级运算符按从左到右的顺序进行计算。当然,括号可改变计
算顺序。 C 语言
处理括号的方法与几乎所有的计算机语言相同:强迫某个运算或某组运算的优先级升高。
2.6.3 关系和逻辑运算符
关系运算符中的 “关系”二字指的是一个值与另一个值之间的关系, 逻辑运算符中的 “逻辑”
二字指的是连接关系的方式。 因为关系和逻辑运算符常在一起使用, 所以将它们放在一起讨
论。关系和逻辑运算符概念中的关键是 True (真)和 Flase (假)。C 语言中,非 0 为 True ,
0 为 Flase。使用关系或逻辑运算符的表达式对 Flase和 Ture 分别返回值 0 或 1(见表 2-6)。
表 2-6 给出于关系和逻辑运算符,下面用 1 和 0 给出逻辑真值表。关系和逻辑运算符的优先
.
.
级比算术运算符低,即像表达式 10>1+12 的计算可以假定是对表达式 10>(1+12) 的计算,当
然,该表达式的结果为