C语言运算符和表达式.ppt

上传人:tia****nde 文档编号:11495490 上传时间:2020-04-25 格式:PPT 页数:29 大小:302.50KB
返回 下载 相关 举报
C语言运算符和表达式.ppt_第1页
第1页 / 共29页
C语言运算符和表达式.ppt_第2页
第2页 / 共29页
C语言运算符和表达式.ppt_第3页
第3页 / 共29页
点击查看更多>>
资源描述
运算符和表达式,夏涛,运算符与表达式,计算机与运算密不可分。运算是对数据的加工。最基本的运算形式常常可以用一些简洁的符号记述,这些符号称为运算符或操作符。C表达式:用运算符将运算对象(也称操作数)连接起来的、符合C语法规则的式子。被运算的对象-数据称为运算量或操作数。运算量可以是数字,也可以是字符;运算量可以是常量,也可以是变量,还可以是函数。表达式描述了对哪些数据,以什么顺序施与什么样的操作。它由运算符与运算量组成。,2+3,运算量,运算量,运算符,合法的表达式:1、a+32、1.25+sin(90)3、ab。运算符:表示不同运算的符号(它代表各种运算的含义)。例:+、-、*、b。,运算符种类算术运算符、关系运算符、逻辑运算符、条件运算符等。优先级混合运算时,各种运算的优先次序。结合性混合运算时,各种运算是从运算符左边还是右边开始进行。,运算与运算符,运算符号,注意,1、运算符的功能2、与运算量的关系A、要求运算量的个数:要求两个运算量参加运算,称为双项(双元、双目)运算符;有的运算符只允许有一个运算量,称为单项(一元、一目)运算符。B、要求运算量的类型。3、运算的优先级别4、结合方向5、所得结果的类型,即表达式的类型。,%:只能对整数进行该运算,/:整数运算的结果为整数,运算符的优先级与结合性,运算符的优先级:运算符优先级表,按照由高向低的次序执行;运算符的结合性:算术运算符的结合方向。“自左至右”或“自右至左”。,例如:=是“自右至左”结合的;a=b=c=5就相当于a=(b=(c=5);,运算的优先级,今后再讲,基本运算符与基本表达式,1、算术运算符与算术表达式2、关系运算符与关系表达式3、逻辑运算符与逻辑表达式4、赋值运算符与赋值表达式,基本的算术运算符,+加法运算符-减法运算符*乘法运算符/除法运算符%模运算符(求余运算符)注意:1、两个整数相除的结果为整数,舍弃小数部分;2、除数和被除数中有一个为实数,则商为double型思考:inta=3;floatb=2.5;那么a/b的结果为何不是float型?3、求余运算要求%的两侧均为整型数据。,百钱买百鸡,main()intcocks,hens,chicks;cocks=0;while(cocks=19)hens=0;while(hens=,intb=c=0;floatf=5.8;charc1=e;,变量的赋值,1、初始化:说明的同时赋值inti=5,j=6;floatx=10.1;charname=A;,2、先说明,后赋值inti;floatx=10.1;charname;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()intx=315;charch=a,c;floatf=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()doublea=123456.789098765;floatb=a;longc=a;inti=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变double2、char,short变int运算对象为不同类型时的转换:1、转换方法:intunsignedlongdouble2、系统自动进行。,赋值中的类型转换,1、类型转换是指不同类型变量混合使用的情况。2、规则:赋值运算符右边的值变为赋值运算符左边变量所属的类型3、整型转换为实行和实型转换为双精度实型,并不增加任何准确度和精确度4、普通类型转换的结果,强制类型转换,通过使用强制类型转换,可以强迫表达式的值转换为某一特定类型。一般的形式是:(类型)表达式其中类型是C语言的标准数据类型。注意:强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。,逗号运算符,逗号运算符用于将多个表达式串在一起。逗号运算符是所有运算符中级别最低的。逗号运算符的左边总是不返回的,也就是说逗号右边表达式的值才是整个表达式的值。实质:逗号使一系列的运算逐个进行。逗号用在赋值语句的右边,将一系列表达式逐个分隔开,而赋给变量的值是最后一个表达式的值。逗号运算符和普通英语中的and一词有相同的含义,就象词组“dothisandthisandthis”一样。请注意区分参数间的分隔符和逗号运算符。,逗号表达式,用逗号运算符将两个表达式连接起来,称为逗号表达式。逗号表达式的一般形式为:表达式1,表达式2,.,表达式n一个逗号表达式可以与另外一个表达式组成一个新的逗号表达式。,例如:y=10;x=(y=y-5,25/y);,Y的初始值为10,减5后为5再将25除以5所得结果为5,所以x的值为5。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!