C语言中的表达式及其知识要点

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言中的表达式及其知识要点

绍兴文理学院沈红卫

C语言中数据类型、运算符等语法点最终归一到表达式(expression)。表达式是C语言的重点和难点。

何为表达式?表达式就是,由运算符、变量和常量组成的具有一个确定结果(值)的一个式子。由于C语言中运算符的广泛性和广义性,所以,C语言中的表达式也是广义的一个概念,与数学中的表达式既有相同之处,又有许多不同的地方。例如:y=x=3,这是一个赋值表达式;x+3,y*5,这也是一个表达式,是逗号表达式,因为“,”(逗号)在C里也是一个运算符。这些是数学所没有的。

说它是重点,是因为几乎所有语句都会涉及到表达式;说它是难点,是因为表达式的广义性,以及求解表达式的复杂性。

为了学好表达式,首先必须掌握C语言中的表达式的种类。C语言表达式的种类较多,主要有以下类型:

算术表达式:大家最熟悉的,例如:x+5*y,算术运算的表达式

关系表达式:x>=5,x<6,x==8,大小关系判断的表达式

逻辑表达式:ans==’y’ || ans==’Y’,与、或、非三种逻辑运算的表达式

赋值表达式:x=6+y,进行变量赋值的表达式

条件表达式:x>y?1:0,如果x>y则取1,否则取0

逗号表达式:x+3,y*5,z-3,有逗号运算符组成的表达式

表达式结果求解是必须掌握的内容。求解一个表达式,必须使用三条规则:一是混合运算规则;二是优先级规则;三是结合性规则。

混合运算规则:当表达式涉及到不同的数据类型时,必须使用该规则,以确定表达式的结果的类型。该规则即教材P35中的“表达式中的自动类型转换规则”。

优先级规则:表达式涉及到多种运算符、优先级又各不相同时,必须使用该规则,就好像数学中的“先乘除后加减”。每种运算符的优先级参见教材P434“附录C”。例如:假设x=3,则算术表达式x+x*5,先乘后加,结果等于18。再如:假设x=3,则逻辑表达式x>5

&& x<10,先关系运算再逻辑运算,相当于是表达式:(x>5)&& (x<10),因此,该表达式的值等于0。常用的运算符的优先级必须熟记。

结合性规则:当表达式涉及到相同优先级的运算符时,必须使用该规则,以决定运算是从左向右进行还是从右向左进行,所以又称为结合方向。例如:x=y=7+z,在这个表达式中,“+”的优先级最高,所以该表达式相当于:x=y=(7+z),因此先计算7+z,假设得到的值是8,则表达式等价为x=y=8,此时,两个“=”赋值运算符的优先级相同,则必须使用结合性规则进行计算了。由于“=”的结合性是右结合性,因此,运算从右向左进行,即8先赋给y,然后y=8的值为8再赋给x。

结合性必须熟记。熟记的技巧是:记住有限的右结合性,所有C运算符中只有三类是右结合性,其它都是左结合性。你看,掌握这个规律,不就容易记多了。右结合性的三类运算符分别是:单目运算符(只有一个运算对象的运算符,例如++)、三目运算符(只有一个,就是条件运算符“?:”,即有三个对象的)、赋值运算符。你看,这个该记住吧!

C语言的表达式一定要注意书写形式,因为C语言表达式的写法与生活中、数学中的表达式有很大区别。例如:3

相关文档
最新文档