收藏 分销(赏)

第二章数据类型、运算符.ppt

上传人:xrp****65 文档编号:13187580 上传时间:2026-02-01 格式:PPT 页数:50 大小:242.50KB 下载积分:10 金币
下载 相关 举报
第二章数据类型、运算符.ppt_第1页
第1页 / 共50页
第二章数据类型、运算符.ppt_第2页
第2页 / 共50页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第二章 数据类型、运算符与表达式,2.1,常量和变量,2.2 C,的数据类型,2.3 C,的运算符及表达式,2.1,常量和变量,一、基本语法成份,C,语言的字符集,字符是可以区分的最小符号,是构成程序的基础。,(1)26,个大小写英文字母,:,az,AZ,(2)10,个数字字符,:09,(3),标点符号,:,空格,!#%&*()_ -,+=:;,.,/?|,2.,标识符,标识符在程序中用来标识各种程序成份,命名,程序中的一些实体,如变量、常量、函数、,类型、标号等对象的名字,必须以英文字母或,下划线开头,是字母、数字、下划线的序列。,判断,:,i,,,a1,,,op,,,y_1,,,zhou_prg,,,max,,,sun,,,day,a.1,,,1computer,,,x+y,,,!,abc,,,99999,,,$100,,,,,3c,(1),预定义标识符,有特定的含义,如库函数的名字、预处理命,令等。,(2),用户定义标识符,由用户根据需要定义的标识符,用来给变,量、数组、函数、文件等命名。,注意:,C,语言允许用户将预定义标识符另作它,用,但将使其失去系统规定的原意。,3.,关键字,关键字又称为保留字,由系统提供,用以表,示特定的语法成份。关键字有特定的语法含,义,不允许用户重新定义。,auto,break,case,char,const,continue,default,do,double,else,enum,extern,float,for,goto,if,int,long,register,return,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile,while,二、常量,1.,常量的定义,在程序运行过程中,其值不能改变的量。,2.,常量的类型,整型、实型、字符型、字符串常量。,字面常量和符号常量,3.,符号常量,用一个标识符来代表一个常量,通过宏定义,预处理命令来实现。,格式,:,define,标识符 常量,符号常量名是用户命名的标识符,一般大,写。一旦定义,在程序中凡是出现常量的地,方均可用符号常量名来代替。对使用了符号,常量的程序在编译前会以实际常量替代符号,常量。,使用符号常量的好处:,(1),含义清楚;,(2),方便程序修改,可以做到一改全改。,三、变量,1.,变量的定义,在程序中其值可以改变的量,用标识符表,示。,2.,变量的实质,一个变量代表了内存中的某个存储单元,,变量名就是该存储单元的名字。,注意:,变量必须先定义后使用,其作用为:,(1),保证程序中变量名使用正确;,(2),每一个变量被指定为一确定类型,在编译,时就能为其分配相应的存储单元;,(3),指定变量所属类型,便于编译时检查该变,量所进行的运算是否合法。,3.,变量的分类,整型变量、实型变量、字符型变量,2.2 C,的数据类型,一、整型数据,1.,整型数据的分类,包括四种类型:基本型,(,int,),、短整型,(short,int,),、长整型,(long,int,),和无符号型,(unsigned).,不同类型的数据在计算机中所占用的字节数,和取值范围不同。,(1)int:,-2,15,2,15,-1,,即:,-3276832767,2,字节,(2)short,int,:,同,int,(3),long,int,:-2,31,2,31,-1,4,个字节,(4)unsigned,int,:,值全部为正,,065535,2,个字节,2.,整型常量,(1),十进制常量:用十进制数码表示数,不加,前缀。,(2),八进制常量:用八进制数码表示数,加前,缀“,0”(,数字零,),。,如:,0123,,,0275,等,。,(3),十六进制常量:用十六进制数码表示数,,加前缀,0 x,或,0X(,数字零和,字母,x(X,),。,如,0 x1A,0X8F,等。,整型常量有基本整型、短整型、长整型和,无符号型。加后缀表示:,l(,或,L),,,u(,或,U),及其,组合。,3.,整型变量,可分为,基本整型、短整型、长整型和无符,号型。,int,a,b,;,short,int,c;,long,d,e,;,4.,整数在内存中的存储形式,最高位表示符号位,正数用原码表示,负,数用补码表示,无符号数的所有位数都表示,数值。,5.,整型数据的溢出,各种整数类型都有各自的取值范围,一旦,超出了这个范围,就不能正确地表示数据,,这种情况称为“溢出”。,include,void main(),int,max,min,;,max=32767;,min=max+1;,printf(max,=%,d,min,=%,dn,max,min,);,二、实型数据(浮点型数据),1.,实型常量,对一个实型常量,可以用两种形式表示,它,即十进制小数形式和指数形式。,(1),十进制小数形式,如,123.45,,,-0.001,。,(2),指数形式,其组成格式为:,e(,或,E),其含义为:,10,注意:书写规则,(1),尾数部分不能省略,即,e(,或,E),前必须有数,据;,(2),指数部分必须是整数;,(3),尾数可以只有整数部分或只有小数部分;,(4),指数、尾数都可以带符号,如省略符号则,隐含为正。,2.,实型变量,浮点型变量分单精度,(float),、双精度,(double),和长双精度,(long double),。,float,a,b,;,double,c,d,;,long double,e,f,;,注意:实型常量在编译系统中作为,double,型来,处理。,三、字符型数据,1.,字符常量,一个字符常量是用单引号括起来的字符,在,内存中占一个字节的存储空间。共有,256,个不,同的字符,有些是可见的;有些是不可见,的,它们只起控制作用,如换行、回车等。,2.,字符变量,用来存放字符常量,用,char,表示。,char c;,3.,字符在内存中的存放形式,字符在内存中是以,ASCII,码值存储。,因此字,符型和整型之间有相通性,这些相通性表现,在:,(1),字符型数据可以用整型形式输出;反之,,一定范围内的整数也可以用字符形式输,出;,(2),字符型和整型之间可以进行混合运算;,(3),整型变量可以接收字符常量,字符变量也,可以接收整型数值,当然这都要在一定范,围之内。,#include,void main(),int,i,j,;,char c1,c2;,c1=a;c2=b;,printf(“c1=%c,c1=%d;c2=%c,c2=%,dn,”,c1,c1,c2,c2);,i=97;j=98;,printf(“i,=%,d,i,=%,c;j,=%,d,j,=%,cn”,i,i,j,j,);,4.,转义字符常量,也称反斜线字符,总,是以反斜杠,开,头,后跟一个特定的字符,用来代表某一个,特定的,ASCII,字符,也用单引号括起来。,有三种情况:,非显示字符,(,控制字符,),;可,显示字符;字符的数值表示。,#include,void main(),printf(“This,is a programn”);,printf,(“this is b a 012 programn”);,printf,(“”firstsecond”);,5.,字符串常量,用一对双引号括起来的字符序列。在每一,个字符串的结尾加一个字符串结束标志,0,其,ASCII,码为,0,,是一个空操作。,四、变量的初始化,C,语言允许在定义变量的同时使变量初始,化,也可以使被定义变量的一部分赋初值。,int,a=3;,float r=3.14;,char c=a;,int,a,b,c,=10;,int,a=3,b=3,c=3;,注意:,初始化不是在程序编译时完成的,而是,在程序运行时执行本函数时赋初值的。,2.3 C,的运算符及表达式,一、算术运算符及算术表达式,1.,算术运算符,+-*/%,(1)%,的运算对象是整数,其余均为整数、实,数;,(2),双目运算符两边运算数的类型必须一致才能进行操作,所得结果的类型与运算数的类型一致;,(3),如果双目运算符两边的运算数的类型不一致,系统将自动进行转换,一致后再进行运算。,运算数 运算数 转换结果,short,int,long,int,short,long,int,long,int,int,long,char,int,char,int,signed unsigned,signed,unsigned,int,float,int,double,float,double,float,float,float,double,int,double,int,double,2.,算术表达式,(1),表达式,把常量、变量、函数和运算符按,C,语言的语,法规则连接起来的式子叫表达式,必定有一,个值,即运算结果。,(2),算术表达式,用算术运算符和一对圆括号将运算量连接,起来的表达式称为算术表达式。,注意:在算术表达式中,只要有一个数是,double,型,则结果即为,double,型。,3.,算术运算符的优先级和结合性,4.,类型转换,类型转换有自动转换(又称隐含转换)与,强制转换两种方式。,(1),自动转换,由系统自动完成,int,usigned,long double,short,char,float,这种转换是一种保值映射,在转换中数据的,精度不受损失。,(2),强制转换,强制类型转换通过类型转换运算进行。,格式,:,(类型名)(表达式),将表达式的类型强制转换成类型名指定的,类型。,如,:float x,y;,(,int,)(,x+y,),将表达式,x+y,的值强制转换成整型,强制类型转换在将高类型转换为低类型时,数据精度受损,是一种不安全的转换。强制,类型转换是暂时性的,一次性的,并不永久改,变所转换表达式的类型。,如,:,int,a;,(double)a,为双精度,a,依然为整型量,讨论:表达式计算,(1)float x=2.5,y=4.7;,int,a=7;,计算:,x+a%3*(int)(x+y)%2/4,(2),int,a=2,b=3;float x=3.5,y=2.5;,计算,:(float)(a+b)/2 +(,int)x%(int)y,(3),int,i=3;float f=1.0;double d=2.3;,计算,:10+,a+i,*,f-d,(1)2.5 (2)3.5 (3)107.7,二、赋值表达式,1.,赋值运算符和赋值表达式,格式:变量名,=,表达式,由赋值运算符组成的表达式称为赋值表达,式。,赋值运算时先计算右边表达式的值,然后,将右边表达式的值赋给左边变量,即送给左边,变量对应的存储单元,并以此作为整个赋值表,达式的值。,(1),赋值运算符的优先级只高于逗号运算符,且具有右结合性;,(2),赋值运算符不是等号,没有相等的关系;,(3),赋值运算符的左边只能是变量,不能是常,量或表达式;,(4),赋值运算符右边的表达式还可以是一个赋,值表达式;,(5),赋值表达式的值就是左边变量所取得的,值。,2.,复合赋值表达式,在基本赋值运算符“,=”,之前加上任一双目算,术运算符及位运算符可构成复合赋值运算符,又称带运算的赋值运算符。,算术复合赋值运算符,:+=,、,=,、*,=,、,/=,、,%=,位复合赋值运算符,:&=,、,|=,、,=,、,=,、,=,复合赋值运算先进行所带运算,再进行赋值,运算。复合赋值运算的优先级同赋值运算。,举例:,(1),int,a=3;,a+=2,等价于,a=a+2,(2)float x=1.2,y=2.1;,y*=x+3.4,等价于,y=y*,(,x+3.4,),(3),int,a=1,b=2;,b/=a+=1,等价于,b=b/,(,a=a+1,),3.,赋值运算中的类型转换,如果赋值运算符两边的类型不一致,则在,赋值的时候要对右边表达式的类型进行转,换,使之适应左边变量的要求。,(1),将实型数据赋给整型变量时,舍弃实数的小,数部分。,int,i;,i=1.23,;,(2),将整型数据赋给单、双精度型变量时,数值,大小不变,但以浮点形式存储到变量中。,float f=15;,double d=15;,则有:,f=15.000000 (6,个,0),d=15.00 0 (14,个,0),(3),将字符型数据赋给整型变量时,由于字符数,据只占一个字节,而整型变量为两个字节,将字符的数据放整型变量的低,8,位,而对整,型变量的高,8,位进行符号扩展。,如果系统将字符处理成无符号的量或赋给,无符号整型变量,则将字符的,8,位放到低,8,位,高,8,位补,0,。,如果所用系统将字符处理成带符号的量,若字符最高位为,0,,则高,8,位补,0,;若字符最高位为,1,,则高,8,位补,1,。,(4),将整型数据赋给字符型变量时,只将其低,8,位原封不动地送到字符型变量。,(5),将基本整型数据赋给长整型变量时,基本整,型数据放长整型变量低,16,位,高,16,位用符,号位扩充。反之将长整型数据赋给整型变,量时,只需将长整型数据的低,16,位原封不动,送整型变量中。,(6),将无符号整型数据赋给长整型变量时,不存,在符号扩展的问题,只需将高位补,0,即可。,将无符号整型数据赋给一个占字节数相同,的整型变量时,将无符号整型数据原样送整,型变量中,并将最高位当作符号位,如果数,据超出相应的整型范围,将产生数据错误。,如果将整型数据赋给占字节数相同的无符,号整型变量,也是原样照赋,最高位作数值,处理。,三、自增和自减运算符,1.,作用,使运算对象的值增,1,或减,1,,实质是一种赋,值操作。,2.,说明,(1),、,是单目运算符,运算对象可以是整型变量也可以是实型变量,不能是常量和表达式,因为不能给其赋值。,(2),、,既可做前缀,也可以做后缀运,算符。,+i,先加后用,i+,先用后加,举例:,int,i,j,;,i=2;,j=i+;j=i;,j=+i;i+;,i+;,j=I;,(3),结合性是自右向左,(4),使用时注意避免歧义性,在一个表达式中不,要使用同一变量的自增或自减运算。,举例:,i=1;,(,i+)+(i+)+(i,+)(+,i)+(+i)+(+i,),四、,运算符的组合问题,C,语言的运算符一般为一个字符,有的由,两个字符组成,在表达式中出现多个字符时如,何组合呢?,C,编译系统在处理时原则上尽可能,自左而右将若干字符组合成一个运算符,标识,符、关键字也按同样的原则进行处理。,如,i+j,解释为(,i+,),+j,非,i+,(,+j,)。如要表示,i+,(,+j,),必须加括号。,五、逗号运算符和逗号表达式,“,”是一种特殊的运算符,用逗号将表达,式连接起来的式子称为逗号表达式。具体形,式如下:,表达式,1,,表达式,2,,,,表达式,n,“,,”的结合性是从左向右,因此逗号表达,式将从左到右进行运算,最后一个表达式的,值就是此逗号表达式的值。,在所有运算符中,逗号的优先级最低。,作业:,上机实习:,P66,习题,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服