数据类型运算符表达式(第二章2少课时).ppt_第1页
数据类型运算符表达式(第二章2少课时).ppt_第2页
数据类型运算符表达式(第二章2少课时).ppt_第3页
数据类型运算符表达式(第二章2少课时).ppt_第4页
数据类型运算符表达式(第二章2少课时).ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

2019年11月22日星期五8时52分27秒,第二章数据类型、运算符与表达式,2019年11月22日星期五8时52分27秒,五、算术运算符和算术表达式,.运算符简介:,1)功能上分类(13大类),()算术运算符:、(求余)、自增、自减,()条件运算符:(三目运算符)?:,()关系运算符:、=、组成箭头,应录成),()下标运算符:(中括号),()其它运算符:如函数调用运算符()(圆括号),2019年11月22日星期五8时52分27秒,2)目数分类:单目、双目、三目和多目;,3)(从)结合性(上):(可分)大类,()右结合,()左结合,单目运算符;,三目运算符;即条件运算符,赋值运算符;,(除了以上说明的之外),2019年11月22日星期五8时52分27秒,4)运算符优先级:共15级,大致可归纳为:,初等运算符()、,单目运算符,算术运算符(先乘除,后加减),关系运算符,逻辑运算符(不包括!),条件运算符,赋值运算符,逗号运算符,2019年11月22日星期五8时52分27秒,.基本的算术运算符及其表达式:,)运算符:、(求余),)表达式:如同数学上的规定;(目数、优先级、结合性(律)注意:531、532、-53-1、-53-2、120、1.20.55.3.1.666666,2019年11月22日星期五8时52分27秒,.基本的算术运算符及其表达式:,相同:对整型的是取整不舍入!%必须是整型,不同:,强制类型转换:自动类型转换:,混合类型,)运算符两侧数据类型:,2019年11月22日星期五8时52分27秒,.强制类型转换,(例)(double)a将a的值转换为double以便后继运算,但a本身值不变。,将自动类型转换,无法自动转换成整型,x%3错误,应改写成(int)x%3,必须强制转换,将输出语句改为:printf(%f,%d,%f,x,(int)x%3,x);,注意:类型标识符的圆括号不能省略,(例)(int)(xy)(float)(5%3)2.0(原为2变成实型),(例)main()floatx;x=5;printf(“%dn”,x%3),2019年11月22日星期五8时52分27秒,.自动类型转换:(当数值型混合运算时),(2)转换成同一类型或更高类型后才进行运算。,(3)转换方向:,(4)例:inti;floatf;doubled;longe;表达式:10+a+i*f-d/e,竖向是升级,不同类型时转换,(1)数值型:整型、实型、字符型(等同单字节整型),横向是必定的,同类型时也要转换,doublefloat横向long竖向unsignedintchar,short,2019年11月22日星期五8时52分27秒,.自增、自减运算符:和,()形式及作用:+i、i(先使i的值增(减),后用i的值)i+、i(先用i的原值,后才使i的值增(减),()例试比较两个程序:main()inti,j;i=4;j=+i;printf(“%d,%d”,i,j);main()inti,j;i=4;j=i+;printf(“%d,%d”,i,j);显示结果分别为:,,,2019年11月22日星期五8时52分27秒,()注意点:,自增、自减(及负号)都是单目运算,右结合(从右到左),自增、自减只能用于变量,不能用于表达式(或常量)i等价于(i)即先取i的值,再进行i=i+1操作(运算),但(i)是非法的!,小心使用,尽量单独使用,一般用于循环控制或指针变量,随心所欲则可能得出意想不到或者非你所需的结果:(i=3),例.k=(i+)+(i+)+(i+)(k=9i=6)又如k=(+i)+(+i)+(+i)(k=18i=6),2019年11月22日星期五8时52分27秒,(4)求值步骤:,在整个表达式求值时:例i=3;j=4;k=(+i)+(j+),先对所有先增/减者进行计算(+i)i=4,然后才对表达式本身求值k=i+j4+4k=8,最后才对后增/减者进行增/减(j+)j=5,尽可能多地从左到右将若干个字符组成一个运算符,先多后少。例如:k=i+j等价于k=(i+)+j,(5)运算符的组合原则:,2019年11月22日星期五8时52分27秒,i=3;printf(“%d,%d”,i,i+);显示结果是:,!,i=3;printf(“%d,%d”,i,i+=1);显示结果还是:,?,函数调用中:实参表一般是从右到左,正确答案,4,4,(6)函数实参表的求值顺序:,2019年11月22日星期五8时52分27秒,六、赋值运算符和赋值表达式,赋值号当成是一个双目运算符,是动态的,与其它高级语言绝然不同。,.简单赋值运算符:,()赋值式:v=e通常:左边v是一个变量、右边e是一个表达式。如:a=b=c=5等价于a=(b=(c=5)又如:a=5+(c=6)c赋、a赋11,()作用:将右边e表达式的值求出,然后赋给(放入)左边变量所指的存放单元(容器)中。,六、赋值运算符和赋值表达式,2019年11月22日星期五8时52分27秒,.赋值原则:,()v与e值的类型相同时,或类型所占字节数相等时:原样赋值;()v与e值的类型不相同时,需将e值的类型转成与v相同才赋值,实整:舍弃小数(不四舍五入);,8位,16或32位,整实:值不变(小数尾部补足);,charint、shortlong(即字节少的变字节多的):无符号:整数前面补足0;(0扩展)有符号:整数前面补足符号位;(符号扩展)补码:如(-2)10=(11111110)2=(111110)2,2019年11月22日星期五8时52分27秒,.赋值原则:,longint、shortchar字节多变换成字节少:只取尾部。即:long(32bit)short(16bit)只取尾部16bitshort(16bit)char(8bit):只取尾部8bit,2019年11月22日星期五8时52分27秒,.复合的赋值运算符:,共有十种:printf(%d,(a,b,c);,三个参数,三个值从右到左运算,逗号表达式,仅一个值,从左到右,最后是c的值,七、逗号运算符和逗号表达式,2019年11月22日星期五8时52分27秒,例1:a=3*5,a*4先求解a=3*5,得a的值为15,然后求解a*4得60,整个逗号表达式的值为60.,例2:(a=3*5,a*4),a+5先使a的值等于15,再进行a*4(但a值未变),再进行a+5得20,即整个表达式的值为20。,例3:(1)x=(a=3,6*3)(x=18)(2)x=a=3,6*a(x=3),2019年11月22日星期五8时52分27秒,八.条件运算符及其表达式:(e1)?e2:e3,()条件运算符:是由两个符号?和:组成的三目运算符,右结合,优先级高于赋值运算符和逗号(按序求值)运算符。,(3)作用:当e1为真取e2的值,否则取e3的值作为表达式的值。,2019年11月22日星期五8时52分27秒,八.条件运算符及其表达式:(e1)?e2:e3,()例:(键入)两个数a,b将大者放于max中:,用条件运算式可写成:,max=a;if(ab)max=a;elsemax=b;,max=(ab)?a:b;,用if语句:,2019年11月22日星期五8时52分27秒,九、关系运算符和关系表达式:,.关系运算符:,()形式:、=、=、!=,()优先次序(级):单目算术关系逻辑赋值,()结合性:左结合(双目运算符),优先级,第6级:、=第7级:=、!=,2019年11月22日星期五8时52分27秒,.关系式:,()形式:e1e2:关系运算符、e1、e2表达式、常量、变量。,()作用:类似于数学上的不等式,但它不一定是正确的,是让你判断是否正确。在计算机中,让计算机去判断我们所写的不等式是否成立,并根据当时的真True、假False值决定做(执行)不同的语句!,()注意:在语言中真True用1、假False用0表示;而判断时:非0为真True、0为假False。,2019年11月22日星期五8时52分27秒,.关系式:,如:a=3;b=2;c=1;d=ab;f=abc;执行结果d=1,f=0;因abc等价于(ab)c,所以:若要判断a,b,c是否是从大到小,则不能简单地用abc,那么,如何表示这个问题(或这个条件)呢?这就要借助逻辑式了!平时口头上我们常这样描述:若a大于b,并且b大于c,则a、b、c就是从大到小排列的,写成逻辑式则为:ab&bc,ab即32为真1,ab为1,c为1,则11为假,2019年11月22日星期五8时52分27秒,十、逻辑运算符和逻辑式,.逻辑运算符及优先级:!非、&与、|或(左结合)优先次序(级):单目算术关系逻辑赋值,.逻辑式e:ee1e2(其中代表逻辑运算符),e1、e2表达式:值为0假,或为非0真,逻辑式e的值:为0假,或为1真,2019年11月22日星期五8时52分

温馨提示

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

评论

0/150

提交评论