C语言运算符和表达式.ppt_第1页
C语言运算符和表达式.ppt_第2页
C语言运算符和表达式.ppt_第3页
C语言运算符和表达式.ppt_第4页
C语言运算符和表达式.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

运算符和表达式 夏涛 运算符与表达式 计算机与运算密不可分。运算是对数据的加工。 最基本的运算形式常常可以用一些简洁的符号记述 ,这些符号称为运算符或操作符。 C表达式:用运算符将运算对象(也称操作数)连接 起来的、符合C语法规则的式子。被运算的对象-数据称 为运算量或操作数。运算量可以是数字,也可以是字符; 运算量可以是常量,也可以是变量,还可以是函数。 表达式描述了对哪些数据,以什么顺序施与什么样 的操作。它由运算符与运算量组成。 2 + 3 运算量 运算量 运算符 合法的表达式: 1、a+3 2、1.25+sin(90) 3、a 运算 运 算:对数据进行计算处理的过程。 例: y=x*x、 y=cos(x)、 ab。 运算符:表示不同运算的符号(它代表各种运算的含义)。 例: + 、 - 、 *、 、 b。 运算符 种类 算术运算符、关系运算符、逻辑运算符、条件运算符等。 优先级 混合运算时,各种运算的优先次序。 结合性 混合运算时,各种运算是从运算符左边还是右边开始进行 。 运算与运算符 运算符号 注意 1、运算符的功能 2、与运算量的关系 A、要求运算量的个数:要求两个运算量参 加运算,称为双项(双元、双目)运算符;有的 运算符只允许有一个运算量,称为单项(一元、 一目)运算符。 B、要求运算量的类型。 3、运算的优先级别 4、结合方向 5、所得结果的类型,即表达式的类型。 %:只能对整数进行该运算 /:整数运算的结果为整数 运算符的优先级与结合性 运算符的优先级:运算符优先级表,按照由 高向低的次序执行; 运算符的结合性:算术运算符的结合方向。 “自左至右”或“自右至左”。 例如:= 是“自右至左”结合的; a=b=c=5 就相当于 a=(b=(c=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 =, int b=c=0; float f =5.8; char c1=e; 变量的赋值 1、初始化:说明的同时赋值 int i=5, j=6; float x=10.1 ; char name=A; 2、先说明,后赋值 int i; float x=10.1; char name; i=5; name=A 赋值运算符的副作用 1、费解、容易误解-对人的副作用 克服方法:尽量把程序写得易懂一些。效率和易读 性是一对主要矛盾。可靠性第一,效率第二。 措施:将费解处分解;加一些“不必要”的括号;加 注释说明。 2、不定解-对机器的副作用 原因:C语言中运算符类型丰富,对表达式的求值 顺序无统一规定。同一程序,在不同的计算机系统运行 时结果不同。 措施:使表达式分解,在任何计算机上运行都能得 到同一结果。 c=b*=a+2; x=i+j ; a=a+2;b=b*a;c=b; 或:c=a+2;c=b*c; 或:c=b*=(a+2); 或:c=b*=a+2;/*c=a+2;c=b*c*/ x=i+j;i+; j=3; i=(k=j+1)+(j=5); j=3;k=j+1;j=5;i=k+j; 变量的数据类型、字节长度、位数、数据范围 数据存储格式 double float long short char 符 点 表 示 定 点 表 示 不同类型数据间的转换 1、提升与降格 2、实数变整数,截去小数;double变float ,去掉多余的有效数字,四舍五入。 3、丢失精度:由2引起,或由于有效数字位 数引起。 4、结果不确定:符点数降格,当数据值超 过了目标类型的取值范围,所得到的结果是不确 定的。 5、截去高位:长整数转换为短整数时,要 将高位截去,只将低字节的内容保留。 指出下边程序在执行过程中各个变量的取值。 main( ) int x=315; char ch=a,c; float f=3.5; c=x; x=f; f=c; f=x; 315的二进制形式为: 0000000100111011 其赋给字符变量 c 取低八位即 00111011 所以 c 的值为: 59。 x 的值为: 3。 f 的值为: 59.0。 f 的值为: 3.0。 不同类型数据间的转换 main() double a = 123456.789098765; float b=a; long c=a; int i=a; printf(“a=%lf,b=%f;c=%ld,i=%dn”,a,b,c,i); 运行结果: a=123456.789099,b=123456.789062,c=123456,i=-7616 各类型数据间的混合运算 整型、实型、字符型数据间可以混合运算。 不同类型的数据要先转换成同一类型,然后进行运算 。 转换的基本原则:保证运算精度! 必定的转换: 1、float变double 2 、char, short变int 运算对象为不同类型时的转换: 1、转换方法:int unsigned long double 2、系统自动进行。 赋值中的类型转换 1、类型转换是指不同类型变量混合使用的情况。 2、规则:赋值运算符右边的值变为赋值运算符左边变量所属的类型 3、整型转换为实行和实型转换为双精度实型,并不增加任何准确度和 精确度 4、普通类型转换的结果 强制类型转换 通过使用强制类型转换,可以强迫表 达式的值转换为某一特定类型。一般的形 式是: (类型) 表达式 其中类型是C语言的标准数据类型。 注意:强制类型转换时,得到一个所 需类型的中间变量,原来变量的类型未发 生变化。 逗号运算符 逗号运算符用于将多个表达式串在一起。 逗号运算符是所有运算符中级别最低的。 逗号运算符的左边总是不返回的,也就是说逗号右 边表达式的值才是整个表达式的值。 实质:逗号使一系列的运算逐个进行。 逗号用在赋值语句的右边,将一系列表达式逐个分 隔开,而赋给变量的值是最后一个表达式的值。 逗号运算符和普通英语中的and一词有相同的含义 ,就象词组“do this and this and this”一样。 请注意区分参数间的分隔符和逗号运算符。 逗号表达式 用逗号运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论