收藏 分销(赏)

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

上传人:胜**** 文档编号:684744 上传时间:2024-02-01 格式:PPT 页数:69 大小:906.50KB
下载 相关 举报
c语言运算符和表达式.ppt_第1页
第1页 / 共69页
c语言运算符和表达式.ppt_第2页
第2页 / 共69页
c语言运算符和表达式.ppt_第3页
第3页 / 共69页
c语言运算符和表达式.ppt_第4页
第4页 / 共69页
c语言运算符和表达式.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

1、1内容回顾l单个字符的个字符的输入和入和输出函数出函数v字符字符输出函数出函数putchar(c)v字符字符输入函数入函数getchar()l格式化格式化输入入(scanf)输出出(printf)函数的用法函数的用法整型数据的整型数据的输入入输出出(%d,%o,%x,%u)实型数据的型数据的输入入输出出(%f,%e,%lf,%le)字符型数据的字符型数据的输入入输出出(%c)l 常用函数常用函数(包含包含头文件文件,函数原型函数原型)第三章3本章内容4运算符简介lC语言中,数据是程序言中,数据是程序处理的理的对象,运算是象,运算是对数据数据进行加工的行加工的过程,体程,体现数据之数据之间的各的

2、各种不同运算关系的符号就称种不同运算关系的符号就称为运算符运算符。lC语言中,除了控制言中,除了控制语句和句和输入入输出以外的出以外的几乎所有的基本操作都是用运算符来几乎所有的基本操作都是用运算符来实现的。的。例如:例如:赋值操作的功能,在操作的功能,在C语言中是用言中是用赋值运算符运算符“=”来来实现的。的。5lC语言的运算符按照其功能分言的运算符按照其功能分为以下以下13类:算算术运算符运算符+-*/%+-下下标运算符运算符 关系运算符关系运算符 !分量运算符分量运算符 -逻辑运算符运算符!|强制制类型型转换运算符运算符(类型)赋值运算符运算符 及其扩展赋值运算符 求字求字节数运算数运算

3、sizeof 条件运算符条件运算符?:位运算符位运算符|逗号运算符逗号运算符,指指针运算符运算符 *其他运算符其他运算符 如函数调用运算符()6学习运算符,主要掌握以下4点:运算符操作的运算符操作的数据的数据的类型。型。不同的运算符操不同的运算符操作的数据的作的数据的类型不一定相同;而且每种运算型不一定相同;而且每种运算符操作的数据的符操作的数据的类型是相型是相对固定的。固定的。运算符操作的运算符操作的数据的个数。数据的个数。不同的运算符操不同的运算符操作的数据的个数不一定相同;根据运算符作的数据的个数不一定相同;根据运算符连接运算接运算对象的个数,一般分象的个数,一般分为单目运算符目运算符(

4、如(如+、-)、双目运算符(如)、双目运算符(如*/%)和)和三目运算符(如?:)。三目运算符(如?:)。7运算符在整个运算符系运算符在整个运算符系统中的中的优先先级。优先先级是指在运算是指在运算对象的左右都有运算符象的左右都有运算符时运算的先后次序运算的先后次序。运算。运算对象先做象先做优先先级高高的运算。如:的运算。如:*/比比+-优先先级高。高。运算符操作的数据的运算符操作的数据的结合性。合性。运算符的运算符的结合性合性规定了在表达式求解定了在表达式求解过程中,若运算程中,若运算对象其左右运算符象其左右运算符优先先级相同相同时的的运算方运算方向向。结合性有两种:左合性有两种:左结合(从左

5、到右合(从左到右计算)和右算)和右结合(从右到左合(从右到左计算)。算)。8l表达式:表达式:用用运算符运算符将将运算运算对象象(常量、常量、变量、函数量、函数等)等)连接而成的式子。接而成的式子。如如a*b/c-1.5+al表达式使用表达式使用时应注意注意表达式的表达式的值及及类型型。a.不同不同类型的运算符所表示的表达式型的运算符所表示的表达式类型也是型也是不同的。表达式一般有不同的。表达式一般有算算术表达式表达式、赋值表达表达式式、关系表达式关系表达式、逻辑表达式表达式、逗号表达式逗号表达式、条件表达式条件表达式等表达式。等表达式。b.表达式表达式虽然有各种然有各种类型,但它型,但它总是

6、是有确定的有确定的值的,根据运算符的的,根据运算符的优先先级和和结合性合性进行行计算。算。9l表达式表达式书写的一般写的一般规则:表达式必表达式必须写在同一行上,只能使用写在同一行上,只能使用圆括号括号,且左右括号个数要相同,有多且左右括号个数要相同,有多层括号括号时内内层括号中的运算括号中的运算优先。先。如:写作:1.0/2*(a*x+(a+x)/4/x)n例:写出下列代数式的C算术表达式 1+(4+x)1/3x(1+pow(4+x),1.0/3)*xy/(2*sqrt(x*x+y*y)103.1 算术表达式l(一一)基本算基本算术运算符:运算符:(加法运算或正号运算符)(加法运算或正号运算

7、符)(减法运算或(减法运算或负号运算符)号运算符)*(乘法运算符)(乘法运算符)(除法运算符)(除法运算符)%(求余运算符,或称模运算符)(求余运算符,或称模运算符)+自增运算符自增运算符-自减运算符自减运算符3.1.1算术运算符11算算术运算符的运算符的优先先级和和结合性合性单目+-+-双目*/%双目+-高低从右向左从左向右如:-5+3%2相当于(-5)+(3%2)结果为-4(优先级)3*5%3相当于(3*5)%3结果为0(结合性)12l注意注意:1)+、-、*、/与数学中的运算与数学中的运算顺序相似,先乘序相似,先乘除,后加减,从左到右。除,后加减,从左到右。2)求余运算符)求余运算符%要

8、求两个运算要求两个运算对象均象均为整型整型数据数据。余数。余数符号与符号与左左边的运算的运算对象符号相同。象符号相同。如:如:2%3为2,-9%5为-4,9%-5为4。3)%、/运算符的运算符的右操作数右操作数不可以不可以为0。4)字符)字符类型的数据以型的数据以该字符的字符的ASCII码参加运参加运算。算。如:如:a+2相当于相当于97+2。135)/运算符,操作数的运算符,操作数的类型不同,功能不同。型不同,功能不同。当两个操作数均当两个操作数均为整型整型时,其,其结果的果的类型也型也为整整型。型。a.若除数和被除数都若除数和被除数都为正正值,结果果为正,直接舍正,直接舍去小数部分,如:去

9、小数部分,如:5/2的的结果果为2。若两个操作数中有一个若两个操作数中有一个为实数数,则结果是果是 double型型。因因为所有所有实数都按数都按double型型进行运算。行运算。如:如:5.0/2的的结果果2.5.b.若除数或被除数中有一个为负值,则舍入的方向是不固定的。如:-5/3=?多数机器采取“向零取整”的方法,即5/3=1,-5/3=-1,取整后向零靠拢。14整除和求余数的特殊用处123%10的结果是的结果是3;12%10的结果是的结果是2;123/10,结果是,结果是12;12/10的结果是的结果是1;通过整除和求余数交叉应用,可以分解通过整除和求余数交叉应用,可以分解一个整数。这

10、个技巧以后我们要经常使一个整数。这个技巧以后我们要经常使用。用。l小程序:输入一个三位数的整数,请分离出各位,十位,百位,并输出。15(二)自增、自减运算符(二)自增、自减运算符u运算符号运算符号:+(自增运算符)(自增运算符)-(自减运算符)(自减运算符)u功能功能:使使变量的量的值增增 1或减或减 1。u用途:常用于循用途:常用于循环语句中使循句中使循环变量自量自动加或减。加或减。也用于指也用于指针变量,使指量,使指针指向下或上一个地指向下或上一个地址。址。u操作数:只能是操作数:只能是变量量不能是常量、表达式和函数。不能是常量、表达式和函数。如:如:i+,+i,i-,-i是正确的。是正确

11、的。+8,+sin(4),(,(x+y)+是是错误的。的。u结合性合性:自增(减)运算符的自增(减)运算符的结合性是合性是右右结合合。u优先先级:单目运算符,目运算符,优先先级高于算高于算术运算符,运算符,低于括号低于括号类运算符。运算符。16l+、-作用于作用于变量的形式有两种:量的形式有两种:前前缀方式方式(prefix):运算符:运算符 变量,如量,如+i、-i;后后缀方式方式(postfix):变量量 运算符,如运算符,如i+、i-;l,:在使用之前,先使,:在使用之前,先使的的值加(减)加(减)l,:在使用之后,再使,:在使用之后,再使的的值加(减)加(减)17自增、自减运算取自增、

12、自减运算取变量的量的值作作为表达式的表达式的值.如如:设n=10;+n:1)n=n+1=11;2)取取n值11作作为表达式表达式+n的的值.n+:1)取取n值10作作为表达式表达式n+的的值;2)n=n+1=11.例子例子:inti,k;i=2;k=+i;i=2;k=i+;i=3i=3k=3k=2k=ii=i+1i=i+1k=i18l例3.1l#includelvoidmain()llinta=2,b=2,x,y;lx=-a+2;/前缀运算ly=b+-1;/后缀运算lprintf(x=%dy=%dn,x,y);lprintf(a=%db=%dn,a,b);lv运行结果:x3 y=1 a=1 b

13、=3a=a-1,x=a+2y=b-1,b=b+119/连续的-表示前两个是对a的自减,最后的-表示减法运算例3.2#includevoidmain()inta=2,b=2,c;c=+a+b-;/变量a为前缀运算,b为后缀运算printf(a=%d,b=%d,c=%dn,a,b,c);a=b=2;c=-a-b;printf(a=%d,b=%d,c=%dn,a,b,c);a=b=2;printf(a=%dn,a+);printf(b=%dn,+b);c=a+b;/a、b增1后的值参加运算printf(“c=%dn”,c);a=a+1,c=a+b,b=b-1c=-(a-)-bc=-a-b,a=a-1

14、c=(a+1)+(b+1)b=b+1输出:a=3,b=1,c=5输出:a=1,b=2,c=-4输出:c=6输出:a=2输出:b=3说明:C语言处理时是从左到右取最多个数的符号作为一个合法的运算符。203.1.2 算算术表达式表达式:用算用算术运算符和括号将运算运算符和括号将运算对象象(也称操作数)也称操作数)连接起来的、符合接起来的、符合语法法规则的式子,称的式子,称为算算术表达式。运算表达式。运算对象包括常量、象包括常量、变量、函数量、函数等。等。例如例如:*.5a是一个合法的表达式。是一个合法的表达式。213.2.1赋值运算符运算符1)运算符:)运算符:=2)作用:将一个数据或表达式的)作

15、用:将一个数据或表达式的值赋给一个一个变量。量。如:如:/表示把常量表示把常量3赋给变量量ay=a*sin(z)/表示把表达式表示把表达式a*sin(z)的的结果求出来再果求出来再赋给一个一个变量量y注:注:赋值运算符与数学中的等号不同,运算符与数学中的等号不同,赋值运算运算符求解后能符求解后能够得到一个运算得到一个运算结果。果。3)赋值运算符的运算符的优先先级和和结合性:合性:优先先级较低,低,结合性是从右向左。合性是从右向左。如:如:x=y=3;3.2 赋值表达式223.2.2赋值表达式表达式变量量表达式表达式计算算赋值运算符右运算符右侧表达式表达式的的值将将赋值运算符右运算符右侧表达式表

16、达式的的值赋给左左侧的的变量量将将赋值运算符左运算符左侧的的变量量的的值作作为表达式的表达式的值例例:n=2;n=n+1;23对赋值表达式的表达式的说明:明:a.赋值运算符运算符左左侧只能是只能是变量量,不可以是表达,不可以是表达式、函数或常式、函数或常变量也不能作量也不能作为左左值。b.赋值表达式中右表达式中右边的的表达式又可以是表达式又可以是赋值表表达式达式。例:例:a=b=7赋值表达式中含有多个表达式中含有多个赋值运算符运算符时,从右向从右向左依次左依次赋值。c.赋值表达式可以以表达式形式出表达式可以以表达式形式出现在某些在某些语句(如句(如输出出语句、循句、循环语句等)中。句等)中。如

17、:如:printf(%d,a=b);243.2.3赋值语句句l变量量=表达式表达式;功能:先功能:先计算表达式的算表达式的值,然后将,然后将值赋给变量。量。例例:inta,b,c;floatx,y;x=sqrt(7);y=x+4;a=b=c=6;25.3.2.4复合复合赋值运算符运算符双目运算符与赋值运算符的合成或简化,称为复合赋值运算符。语言规定可以使用种复合赋值运算符:,*,|复合赋值运算符的优先级和结合性同赋值运算符。26变量双目运算符=表达式复合复合赋值运算符的运算符的功能功能:先将变量与赋值运算先将变量与赋值运算符后面的表达式进行一次双目运算符所指定的符后面的表达式进行一次双目运算符

18、所指定的运算,然后再将运算结果赋给变量。运算,然后再将运算结果赋给变量。例如例如:等价于等价于*等价于等价于*()()等价于等价于以“”为例来说明,它相当于使进行一次自加()的操作。即先使加,再赋给。27注意:如果=右边是包含若干项的表达式,则相当于它有括号。如:x%=y+3x%=(y+3)|_x=x%(y+3)(不要错写成x=x%y+3)复合赋值运算表达式:变量双目运算符=表达式是个整体步骤:1)左边变量的当前值与右边整个表达式进行相应运算。2)把1)的结果赋给左边的变量。3)赋值表达式的值是左边变量的值。28例例3.3赋值运算符的使用赋值运算符的使用#includevoidmain()in

19、ta=5,b=5,c=5;a-=2;b*=a+3;c/=a-1;printf(a=%d,b=%d,c=%dn,a,b,c);结果:a=3,b=30,c=2a=a-2b=b*(a+3)c=c/(a-1)293.3 逻辑表达式l关系运算符是用来比关系运算符是用来比较两个运算两个运算对象大小象大小的,运算的,运算结果是成立或不成立。果是成立或不成立。l如果成立,如果成立,则结果果为逻辑值“真真”,用整,用整数数“1”来表示;如:来表示;如:5=5l如果不成立,如果不成立,则结果果为逻辑值假假”,用整,用整数数“0”来表示。如:来表示。如:5 运算符运算符=abab例子例子aba=ba=ba=ba=b

20、小于等于小于等于=a!=ba!=b不等于不等于!=!=312.关系运算符的关系运算符的优先先级:关系运算符的关系运算符的优先先级低于算低于算术运算符运算符,高于高于赋值运算符。运算符。、=的的优先先级相同。相同。=、!、!=的的优先先级相同。相同。关系运算符的关系运算符的结合性:合性:左左结合合如:如:intx=7;计算下面关系表达式的算下面关系表达式的值:x5!=11=1b、a+bb+c、(a=3)(b=5)、ab)(b(b=4);结果果为0。d=abc;结果果为0。d=ac=c;结果果为1。2)若)若inta=5,b=3;printf(%d,ab);34例例3.4分析下面程序的运行结果。分

21、析下面程序的运行结果。#includevoidmain()floatx,y=0.3;y=y*11;x=3+0.3;if(x=y)printf(ok,x=y);elseprintf(no,x!=y);v说明:两个实数一般不作相等或不等比较。(因为实数表示或在计算过程中有时存在误差)v结果:no,x!=y35字符数据可以进行大小比较。比较时,字符数据可以进行大小比较。比较时,用字符的用字符的ASCII码进行比较。码进行比较。l如:如:ABZa字母 AZ ASCII:6590字母 az ASCII:9712236例例3.5#includevoidmain()inta,b,c;scanf(%d%d%d

22、,&a,&b,&c);/输入:入:234a=b!=c;/将关系表达式的将关系表达式的值赋给aprintf(a=%d,b=%d,c=%dn,a,b,c);a=(b=c+*3);/a与与b进行相等比行相等比较printf(a=%d,b=%d,c=%dn,a,b,c);a=bc2;/将关系表达式的将关系表达式的值赋给aprintf(a=%d,b=%d,c=%dn,a,b,c);a=1,b=3,c=4a=1,b=12,c=5a=0,b=12,c=5373.3.2逻辑运算符及逻辑表达式1、逻辑运算符逻辑与&(表示并且)逻辑或|(表示或者)逻辑非!(表示相反)例:!a例:a&b例:a|b结合性:!单目运算

23、,右结合&、|双目运算,左结合38l用用逻辑运算符将运算符将关系表达式关系表达式或或逻辑量量连接而成接而成的式子。的式子。如:如:x=33|5!(x+y)&7l逻辑运算运算对象可以任何象可以任何类型的数据(整型、型的数据(整型、实型、字符型、指型、字符型、指针型、枚型、枚举型)。型)。l判断判断逻辑运算运算对象的真假象的真假非非0 0表示表示真真00表示表示假假2.逻辑表达式x,y可以是任意表达式39l逻辑表达式的表达式的运算运算结果果为一一逻辑值(即(即真或假)。真或假)。1(表示(表示逻辑真,即真,即满足条件)足条件)0(表示(表示逻辑假,即不假,即不满足条件)足条件)l逻辑表达式在程序中

24、一般用于控制表达式在程序中一般用于控制语句句(if、for、while、dowhile),对某些某些条件作出判断,根据条件的成立(真)条件作出判断,根据条件的成立(真)与不成立(假)决定程序的流程。与不成立(假)决定程序的流程。403.逻辑运算的运算的规则:逻辑与&逻辑或|逻辑非!真值表xyx&yx|y!x假假001假真011真假010真真110000非0非00非0非05&7=?0|7=?!7=?41总结:!运算结果为运算对象逻辑值的反当运算对象为非零值时,则运算结果为0 0,反之当运算对象为零值时,则运算结果为1 1&当两个运算对象均为非零值时,运算结果为1 1,否则运算结果值为0 0|当两

25、个运算对象中有一个为非零值时,运算结果为1 1。当两个运算对象均为零时,则运算结果才为0 0。42内容回顾l算术运算符:/%+-l赋值运算符:=复合赋值运算符:+=-=/=%=l关系运算符:=!=l逻辑运算符:&|!使用运算符时应注意:优先级和结合性434.逻辑运算符的运算符的优先先级!+-+-(正负)*/%+、-(加减)=!=&|=+=-=*=/=%=,高低例3.6写出下列表达式的值。设inta=2,b=3;charc=A;floatx=3.6,y=-4.4;1)ab|!(cA)&xy2)a-b&!c-5|y*2z&x+zy&z+yx3)判断字符变量ch中的字符是否为大写字母的逻辑表达式。c

26、h=A&ch=Z说明:&(逻辑与)一般用于判断两个或两个以上的条件是否同时成立。454)写出)写出|x|大于大于6.25的的逻辑表达式。表达式。-x6.255)写出)写出x、y不同不同时为零的零的逻辑表达表达x!=0|y!=0说明:明:|(逻辑或)一般用于判断两个或)一般用于判断两个或两个以上的条件是否或两个以上的条件是否至少有一个成立至少有一个成立466)“判断判断y是是闰年年”。凡能被。凡能被4整除不能被整除不能被100整除的是整除的是闰年或能被年或能被400整除的是整除的是闰年年.y%4=0&y%100!=0|y%400=07)判断判断“x、y落在落在圆心心(0,0)半径半径为1的的圆外

27、外和中心点和中心点为(0,0)边长为4的矩形内的矩形内”的表的表达式达式.(0,0)(r2,0)(r1,0)(x,y)x*x+y*y1&x=-2&x=-2&y、=、=关系运算5=、!=关系运算6&逻辑与7|逻辑或8?:条件运算符3(三目运算符)9自右向左=、+=、-=、*=、/=、%=赋值运算符2(双目运算符)10,逗号运算符多目11自左向右480 x10不同于0 x&x10要判断一个要判断一个变量的量的值是否在是否在0到到10之之间,很自然想,很自然想到了到了这样一个表达式:一个表达式:scanf(%d,&a);if(0a10)printf(%d,a);编译通通过,但是在运行的但是在运行的时

28、候就会出候就会出问题。仔仔细分析一下分析一下if语句的运行句的运行过程程.正确的写法正确的写法应该是:是:if(0a)&(a=0?1:1;求三个求三个变量最大量最大值x、y、z。s=(s=xy?x:y)z?s:z;将将字字符符变量量ch若若为小小写写字字母母则改改为大大写写字字母,其余字符不母,其余字符不变。ch=(ch=a&chb?a:cd?c:dab?a:(cd?c:d)结果为452l例例3.10输入三个数入三个数给变量量a,b,c后,按后,按值从大从大到小到小输出出#includevoidmain()inta,b,c;intm,n,k;scanf(“%d%d%d”,&a,&b,&c);/

29、输入入5-87m=ab?a:b;/m取取a、b中大数中大数m=mc?m:c;/m取取c、m中最大数中最大数n=ab?a:b;/n取取a、b中小数中小数n=nc?n:c;/n取取c、n中最小数中最小数 k=a+b+cmn;/三个数的和减去最大、最小数,三个数的和减去最大、最小数,得中得中间数数printf(%d%d%dn,m,k,n);输入:5-87输出:-8533.4.逗号运算符及逗号表达式逗号运算符及逗号表达式1、逗号运算符、逗号运算符,(常用(常用 在在for语句中)句中)2、逗号表达式、逗号表达式 表达式表达式1,表达式,表达式2,表达式,表达式n功能:功能:自左至右自左至右计算各表达式

30、的算各表达式的值,并以,并以最后最后一个表达式的一个表达式的值作作为逗号表达式的逗号表达式的值。如:a=2+4,3*5a的值为,整个表达式的值为54.优先先级和和结合性合性逗号运算符是所有运算符中逗号运算符是所有运算符中级别最低的,运算最低的,运算方向:从左向右方向:从左向右例例:(,*),*3赋值表达式,将一个逗号表达式的值赋给,的值等于逗号表达式,包括一个赋值表达式和一个算术表达式,的值为,整个逗号表达式的值为18。55注意:并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。如:printf(“%d,%d,%d”,a,b,c);“,”并不是一个逗号表达式,它是pr

31、intf函数的3个参数printf(“%d,%d,%d”,(a,b,c),b,c);“(,)”是一个逗号表达式,它的值等于的值。563.5多种类型混合运算C语言中,允许不同类型的数据进行混合运算,包括整型(int,short,long)、实型(float,double)、字符型(char)数据都可以进行混合运算。例如:10+a+15-87651234*b是合法的。l在进行运算时,不同类型的数据要先转换成同一类型,然后再运算求值。57l表达式中数据表达式中数据类型的型的转换可分可分为两种:两种:数据数据类型的型的隐式式转换(自自动转换)数据数据类型的型的强制制转换l类型型转换在在C中也属于一种运

32、算。中也属于一种运算。58(1)自)自动转换在在进行算行算术运算运算过程中,两个参加运算的操程中,两个参加运算的操作数,在作数,在计算前先自算前先自动进行行类型型转换。v水平方向:自动v垂直方向:低高高doublefloatunsignedlonglongunsignedunsignedshort低intchar,short3.5.1算术运算中的类型转换59例:例:A+126577规则1:凡char,short型一律自动转换成int型,float一律转换成double型,转换后若两操作数类型相同,作算术运算,其结果类型与转换后的类型相同。1.5f*4.21.5f转换为double型,计算结果6

33、.3为double型60规则2:相同类型的操作数(除char,short,float型外)作算术运算的结果为同一类型。例:两个整数的除法其例:两个整数的除法其结果一定是整数。果一定是整数。5/2结果果为2,-5/2结果果为-2。61规则3:不同不同类型的操作数或型的操作数或经规则1转换后仍然是后仍然是不同不同类型,型,则低低级别的自的自动转换成高成高级别的再的再运算,其运算,其结果果类型与型与转换后的后的类型相同。型相同。charshortintunsignedlongunsignedlongfloatdouble62例例3.112.0f+5/2*3262.06.08.0高doublefloa

34、tunsignedlonglongunsignedunsignedshort低intchar,short规则规则规则规则63l可以利用可以利用强制制类型型转换运算符将一个表达式运算符将一个表达式转换成所需成所需类型。型。(类型名)表达式强制类型转换运算符优先级同+,高于算术运算符,从右向左如:(double)3(int)3.8(double)(5/2)(double)5/23.032.02.5(2)强制类型转换64例例.12#includevoidmain()float;inti;x=3.6;i=(int)x;printf(x=%f,i=%dn,x,i);n说明:强制类型转换,对被转换变量本身

35、没有影响(既不改变变量的类型,也不改变变量值的类型),只生成一个中间计算结果。v运行结果:x3.600000,i=3v说说明:明:有两种类型转换,一种是在运算时不必用户指定,系统自动进行的类型转换。第二种是强制类型转换。当自动类型转换不能实现目的时,可以用强制类型转换。653.5.2赋值时数据类型的转换l在在赋值语句中,左句中,左边变量和右量和右边表达式的表达式的类型型不同不同时,系,系统会自会自动完成完成类型型转换。l将将赋值运算符右运算符右侧表达式的表达式的类型自型自动转换成成赋值号左号左侧变量的量的类型,再型,再赋值。l如:如:intx=3;则表达式表达式x=x+1.999的的值是是4。

36、66数据类型的赋值转换规则表变量量类型型表达式表达式值类型型转换规则示例示例charint取表达式取表达式值的低的低8位位 x=65或或x=557变量量x值为Afloat、double取表达式整数部分的低取表达式整数部分的低8位位x=65.78 变量量X值为Aintchar将将对应ASCII码值赋给变量量 x=A,变量量X值为65float、double舍弃小数部分舍弃小数部分(正常情况下)(正常情况下)x=3.89;变量量X的的值为3floatchar、int、double浮点形式,注意有效位数浮点形式,注意有效位数floatt=3.14159265,变量量t值为3.141592double

37、char、int、double浮点形式,注意有效位数浮点形式,注意有效位数67常见的几种赋值时的数据类型转换l字符数据字符数据赋值给整型整型变量量(char-int)例:intz;z=b;/即字符b的ASCII码值赋给z变量)v整数赋值给实型变量(int-float)例:floatz;z=39;/z的值即为39.00000068常见的几种赋值时的数据类型转换l实数数赋值给整型整型变量量(float-int)例例intx;x=3.89;/取整数,舍弃小数取整数,舍弃小数l如果如果值超超过变量的取量的取值范范围,可能整数部,可能整数部分数据会分数据会丢失。失。693.5.3运算符优先级和运算符结合方向lC语言的运算符有种言的运算符有种优先先级和两种和两种结合性。合性。l运算运算级别高的先高的先计算,再算,再进行运算行运算级别低的运低的运算。算。l在运算符在运算符优先先级相同相同时,运算,运算顺序由序由结合性决合性决定。定。l表达式中可以通表达式中可以通过增加括号来改增加括号来改变运算运算顺序。序。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 计算机应用

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服