运算符和表达式ppt课件.ppt

运算符和表达式ppt课件.ppt

ID:58840439

大小:988.00 KB

页数:57页

时间:2020-09-30

运算符和表达式ppt课件.ppt_第1页
运算符和表达式ppt课件.ppt_第2页
运算符和表达式ppt课件.ppt_第3页
运算符和表达式ppt课件.ppt_第4页
运算符和表达式ppt课件.ppt_第5页
资源描述:

《运算符和表达式ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章运算符和表达式武汉大学计算机学院主讲:谭成予nadinetan163教材:C程序设计导论本讲重点运算符运算规则优先级别和结合性C运算符分类运算符及表达式简介表达式:由动词(运算符和函数调用)和名词(变量和常量)组成的一个完整的句子,说明了动词是如何运用到名词上产生一个结果。运算符:完成特定运算功能的符号。C语言运算符的类型:算术运算符赋值运算符关系运算符逻辑运算符条件运算符位运算符逗号运算符其他运算符运算符的优先级与结合性本讲重点运算符运算规则优先级别和结合性C运算符分类运算符运算规则算术运算符算术运算符+-*/%(求余)++(自增)--(自减)使用要点:1)两个整型数相除,其

2、结果为整型;如:10/3=3-5/3=-1(负数采用“向零取整”)2)%运算符的两个操作数必须是整型;如:7%4=3特别情况:0%5=0;5%0=5;-7%4=-3;-7%-4=-3;7%-4=3。即:%运算的符号只取决于第一个运算数的符号。算术运算符双目运算符:如+、-、*、/和%;单目运算符:如“+”和“-”还可分别作为取正值、负值运算符。单目运算符“+”和“-”优先级别高于双目运算符+、-、*、/和%;双目运算符的优先级别:先乘除(*、/或%),后加减(+或-)算术运算符x=30x=24x=11x=1x=0x=1y=25.0000/*L3-1.C:算术运算符示例*/#inclu

3、deintmain(void){shortintx,a=3;floaty;x=20+25/5*2;printf(“x=%d”,x);x=25/2*2;printf(“x=%d”,x);x=-a+4*5-6;printf(“x=%d”,x);x=a+4%5-6;printf(“x=%d”,x);x=-3/4%-6/5;printf(“x=%d”,x);x=(7+6)%5/2;printf(“x=%d”,x);y=25.0/2.0*2.0;printf(“y=%.4f”,y);return0;}自增、自减运算符++自增运算符,表示加1运算--

4、自减运算符,表示减1运算前缀形式:在计算时先改变变量的值,再参与其它运算.++i--i例:若i=1,则k=++i+2运行后i=2、k=4后缀形式:在计算时先参与其它运算,再改变变量的值.i++i--例:若i=1,而k=i+++2运行后i=2、k=3++与--运算符的使用规则:++与--运算只能用于有左值的表达式,而不能用于常量或一般的表达式。如:5++或(a+b)++为不合法的。++与--运算符的的结合性为右结合性。自增、自减运算符/*L3-2.C:自增、自减运算符举例*/#includeintmain(){shortinta,b,c;a=9;b=++a;print

5、f(“(1)a=%d***b=%d”,a,b);a=9;b=a++;printf(“(2)a=%d***b=%d”,a,b);return0;}(1)a=10***b=10(2)a=10***b=9自增、自减运算符正确使用自增、自减运算符对i+++j表达式的处理:采用“自左至右”的原则即:i+++j与(i++)+j等价而不是与i+(++j)等价对于代码inti=3;i=i++;不同编译器给出不同的结果,有的为3,有的为4,哪个是正确的?为什么这样的代码:a[i]=i++;不能工作?对于代码inti=3;i=i++;不同编译器给出不同的结果,有的为3,有的为4,哪个是正确的?答

6、:没有正确答案;这个表达式无定义。注意,i++和++i都不同于i+1。如果你要使i自增1,使用i=i+1,i+=1,i++或++i,而不是任何组合.正确使用自增、自减运算符如:若i=3,则表达式(i++)+(i++)+(i++)的结果应为多少?有的系统从左到右顺序完成括号中的运算,即表达式经过为3+4+5=12。另外一些系统(如TurboC、MSC)则先计算表达式的值,再自加3次i,即表达式结果为3+3+3=9。正确使用自增、自减运算符对printf(“%d,%d”,i,i++);的理解 若i=3,则在TurboC中对输出函数参数的求值顺序采用“自右至左” 结果为:4,3(而不是3,

7、3)不要滥用增量运算符;增量运算符有副作用,会改变运算分量的值但是如果使用不当,会带来意想不到的结果.正确使用自增、自减运算符对于代码inti=3;i=i++;不同编译器给出不同的结果,有的为3,有的为4,哪个是正确的?为什么这样的代码:a[i]=i++;不能工作?为什么这样的代码:a[i]=i++;不能工作?答:子表达式i++有一个副作用—–它会改变i的值—–由于i在同一表达式的其它地方被引用,这会导致无定义的结果,无从判断该引用(左边的a[i]中)是旧

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。