C语言中的表达式及其知识要点
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C 语言的表达式一定要注意书写形式,因为 C 语言表达式的写法与生活中、数学中的 表达式有很大区别。例如:3<x<10,这个表达式在 C 语言中必须写成:3<x && x<10,再如: ans==’Y’||’y’ ,这个表达式在生活中似乎是对的,字面意思是 ans 等于 Y 或者 y,但是 C 语 言中不允许你这样写,必须写成:ans==’Y’ || ans==’y’ 。否则,意义完全不一样了,甚至可 能是法的表达式。请多看书,自然就领会了。
&& 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 语言表达式的种类较多, 主要有以下类型:
算术表达式:大家最熟悉的,例如: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,有逗号运算符组成的表达式
结合性必须熟记。熟记的技巧是:记住有限的右结合性,所有 C 运算符中只有三类是 右结合性,其它都是左结合性。你看,掌握这个规律,不就容易记多了。右结合性的三类运 算符分别是:单目运算符(只有一个运算对象的运算符,例如++)、三目运算符(只有一个, 就是条件运算符“?:”,即有三个对象的)、赋值运算符。你看,这个该记住吧!
C 语言中的表达式及其知识要点
绍兴文理学院 沈红卫
C 语言中数据类型、运算符等语法点最终归一到表达式(expression)。表达式是 C 语言 的重点和难点。
何为表达式?表达式就是,由运算符、变量和常量组成的具有一个确定结果(值)的 一个式子。由于 C 语言中运算符的广泛性和广义性,所以,C 语言中的表达式也是广义的 一个概念,与数学中的表达式既有相同之处,又有许多ຫໍສະໝຸດ Baidu同的地方。例如:y=x=3,这是一 个赋值表达式;x+3,y*5,这也是一个表达式,是逗号表达式,因为“,”(逗号)在 C 里也 是一个运算符。这些是数学所没有的。
表达式结果求解是必须掌握的内容。求解一个表达式,必须使用三条规则:一是混合 运算规则;二是优先级规则;三是结合性规则。
混合运算规则:当表达式涉及到不同的数据类型时,必须使用该规则,以确定表达式 的结果的类型。该规则即教材 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 语言表达式的种类较多, 主要有以下类型:
算术表达式:大家最熟悉的,例如: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,有逗号运算符组成的表达式
结合性必须熟记。熟记的技巧是:记住有限的右结合性,所有 C 运算符中只有三类是 右结合性,其它都是左结合性。你看,掌握这个规律,不就容易记多了。右结合性的三类运 算符分别是:单目运算符(只有一个运算对象的运算符,例如++)、三目运算符(只有一个, 就是条件运算符“?:”,即有三个对象的)、赋值运算符。你看,这个该记住吧!
C 语言中的表达式及其知识要点
绍兴文理学院 沈红卫
C 语言中数据类型、运算符等语法点最终归一到表达式(expression)。表达式是 C 语言 的重点和难点。
何为表达式?表达式就是,由运算符、变量和常量组成的具有一个确定结果(值)的 一个式子。由于 C 语言中运算符的广泛性和广义性,所以,C 语言中的表达式也是广义的 一个概念,与数学中的表达式既有相同之处,又有许多ຫໍສະໝຸດ Baidu同的地方。例如:y=x=3,这是一 个赋值表达式;x+3,y*5,这也是一个表达式,是逗号表达式,因为“,”(逗号)在 C 里也 是一个运算符。这些是数学所没有的。
表达式结果求解是必须掌握的内容。求解一个表达式,必须使用三条规则:一是混合 运算规则;二是优先级规则;三是结合性规则。
混合运算规则:当表达式涉及到不同的数据类型时,必须使用该规则,以确定表达式 的结果的类型。该规则即教材 P35 中的“表达式中的自动类型转换规则”。
优先级规则:表达式涉及到多种运算符、优先级又各不相同时,必须使用该规则,就 好像数学中的“先乘除后加减”。每种运算符的优先级参见教材 P434“附录 C”。例如:假 设 x=3,则算术表达式 x+x*5,先乘后加,结果等于 18。再如:假设 x=3,则逻辑表达式 x>5