- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
运算符和表达式 运算符与表达式 计算机与运算密不可分。运算是对数据的加工。 最基本的运算形式常常可以用一些简洁的符号记述,这些符号称为运算符或操作符。 C表达式:用运算符将运算对象(也称操作数)连接起来的、符合C语法规则的式子。被运算的对象--数据称为运算量或操作数。运算量可以是数字,也可以是字符;运算量可以是常量,也可以是变量,还可以是函数。 表达式描述了对哪些数据,以什么顺序施与什么样的操作。它由运算符与运算量组成。 与代数运算符、代数表达式的差异 1、不是所有的代数运算符都被C语言支持。 2、同样一个功能的运算符的书写形式是有差异的。 3、有些代数运算符需要通过函数实现。 4、有些运算符在普通代数式中是没有的。 5、C语言表达式和代数表达式的书写格式是有差异的。 6、不要吝啬使用括号。 运算与运算符 运算符号 注意 1、运算符的功能 2、与运算量的关系 A、要求运算量的个数:要求两个运算量参加运算,称为双项(双元、双目)运算符;有的运算符只允许有一个运算量,称为单项(一元、一目)运算符。 B、要求运算量的类型。 3、运算的优先级别 4、结合方向 5、所得结果的类型,即表达式的类型。 运算符的优先级与结合性 运算符的优先级:运算符优先级表,按照由高向低的次序执行; 运算符的结合性:算术运算符的结合方向。“自左至右”或“自右至左”。 运算的优先级 基本运算符与基本表达式 1、算术运算符与算术表达式 2、关系运算符与关系表达式 3、逻辑运算符与逻辑表达式 4、赋值运算符与赋值表达式 基本的算术运算符 + 加法运算符 - 减法运算符 * 乘法运算符 / 除法运算符 % 模运算符(求余运算符) 注意: 1、两个整数相除的结果为整数,舍弃小数部分; 2、除数和被除数中有一个为实数,则商为double型 思考:int a = 3; float b = 2.5;那么a/b的结果为何不是float型? 3、求余运算要求%的两侧均为整型数据。 百钱买百鸡 main(){ int cocks, hens, chicks; cocks = 0; while(cocks = 19){ hens = 0; while(hens = 33){ chicks = 100-cocks-hens; if((5*cocks+3*hens+chicks/3) == 100) printf(“%d %d %d\n”, cocks, hens, chicks); hens = hens +1; } cocks = cocks +1; } } 例题 自增、自减运算符 注意: 1、只能用于变量,不能用于常量或表达式; 2、运算符的结合方向为“自右至左”。 赋值运算符 先计算等号右边的表达式,然后将其值赋给等号左边的变量。 C语言赋值运算符与数学中的等号其含义有着本质的不同。 复合的赋值运算符 1、复合的赋值运算符:在赋值符“=”之前加上其它运算符,则构成了复合的运算符。 2、C语言规定可以使用10种复合赋值运算符: +=,-=,*=,/=,%=,=,=,=,^=,|= 3、复合赋值运算符相当于将运算符左侧的变量与右侧的常量(或表达式的值)进行相关的运算。 赋值表达式 1、由一个赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。 变量 赋值运算符 表达式 2、作用:将赋值运算符右侧的“表达式”的值赋给左侧的变量。 3、上述的“表达式”可以是一个赋值表达式。 4、赋值的对象,或者说赋值运算符的左边,必须是一个变量,而不能是一个函数或常量。 变量初始化 在说明变量时给它赋一个初值,只需在变量名后面加一等号及一个常数。这就叫做变量初始化。 它的一般形式是: 类型 变量名=常数; 注意: 没有赋初值的变量,并不意味着该变量中没有数值。 全程变量在没有明确初始化的情况下由程序自动赋零。 局部变量在未初始化时其值是不确定的,是一个随机数。 变量的赋值 赋值运算符的副作用 1、费解、容易误解--对人的副作用 克服方法:尽量把程序写得易懂一些。效率和易读性是一对主要矛盾。可靠性第一,效率第二。 措施:将费解处分解;加一些“不必要”的括号;加注释说明。 2、不定解--对机器的副作用 原因:C语言中运算符类型丰富,对表达式的求值顺序无统一规定。同一程序,在不同的计算机系统运行时结果不同。 措施:使表达式分解,在任何计算机上运行都能得到同一结果。 数据存储格式 不同类型数据间的转换 1、提升与降格 2、实数变整数,截去小数;double变float,去掉多余的有效数字,四舍五入。 3、丢失精度:由2引起,或由于有效数字位
文档评论(0)