当前位置:嗨网首页>书籍在线阅读

20-表达式

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

5.4.1 表达式

表达式(expression)由运算符和运算对象组成(前面介绍过,运算对象是运算符操作的对象)。最简单的表达式是一个单独的运算对象,以此为基础可以建立复杂的表达式。下面是一些表达式:

4
-6
4+21
a*(b + c/d)/20
q = 5*2
x = ++q % 3
q > 3

如你所见,运算对象可以是常量、变量或二者的组合。一些表达式由子表达式(subexpression)组成(子表达式即较小的表达式)。例如, c/d 是上面例子中 a * (b + c/d)/20 的子表达式。

每个表达式都有一个值

C表达式的一个最重要的特性是,每个表达式都有一个值。要获得这个值,必须根据运算符优先级规定的顺序来执行操作。在上面我们列出的表达式中,前几个都很清晰明了。但是,有赋值运算符( = )的表达式的值是什么?这些表达式的值与赋值运算符左侧变量的值相同。因此,表达式 q = 5 * 2 作为一个整体的值是 10 。那么,表达式 q > 3 的值是多少?这种关系表达式的值不是 0 就是 1 ,如果条件为真,表达式的值为 1 ;如果条件为假,表达式的值为 0 。表5.2列出了一些表达式及其值:

表5.2 一些表达式及其值

| 表达式 | 值 | | :----- | :----- | :----- | :----- | | -4 + 6 | 2 | | c = 3 + 8 | 11 | | 5 > 3 | 1 | | 6 + (c = 3 + 8) | 17 |

虽然最后一个表达式看上去很奇怪,但是在C中完全合法(但不建议使用),因为它是两个子表达式的和,每个子表达式都有一个值。