c语言数据类型解析课件.ppt

上传人(卖家):晟晟文业 文档编号:4985145 上传时间:2023-01-30 格式:PPT 页数:60 大小:659KB
下载 相关 举报
c语言数据类型解析课件.ppt_第1页
第1页 / 共60页
c语言数据类型解析课件.ppt_第2页
第2页 / 共60页
c语言数据类型解析课件.ppt_第3页
第3页 / 共60页
c语言数据类型解析课件.ppt_第4页
第4页 / 共60页
c语言数据类型解析课件.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

1、C C C C C C 语言基础语言基础语言基础语言基础语言基础语言基础 23main()float=*printf(%fn,);4C数据类型数据类型数组类型数组类型结构体类型结构体类型共用体类型共用体类型枚举类型枚举类型指针类型指针类型构造类型构造类型5整型数据的类型整型数据的类型基本整型数据基本整型数据 int,分配分配 2 Byte短整型数据短整型数据 short int,分配分配 2 Byte长整型数据长整型数据 long int,分配分配 4 Byte无符号型,存储单元中全部二进位(无符号型,存储单元中全部二进位(bit)用作存放数本身,而不包括符号。用作存放数本身,而不包括符号。整

2、型数据均以整型数据均以二进制补码二进制补码形式存储形式存储11111000011111116实型数据的类型实型数据的类型float x,y;(指定指定x,y为单精度实数为单精度实数)doublez;(指定指定z为双精度实数为双精度实数72.2.2.4 2.4 空类型空类型8l主要内容主要内容9l在运行程序的过程中值保持不变的量在运行程序的过程中值保持不变的量1整型常量整型常量 main()main()int a=0123;b=0 x123;int a=0123;b=0 x123;printf(“a=%d,b=%d”,a,b);printf(“a=%d,b=%d”,a,b);10l整型常量的类型

3、:整型常量的类型:例如:例如:123L、0L、432l、0 x100l018092111十进制形式十进制形式指数形式指数形式12l可视字符常量可视字符常量l转义字符常量转义字符常量可视字符可视字符 字符形式 功能 n 换行 t 横向跳格(即跳到下一个输出区-占 8 列)v 竖向跳格 b 退格(不换行)r 回车 f 走纸换页 反斜杠字符“”单引号(撤号)字符 ddd l 到 3 位 8 进制数所代表的字符 xdd 1 到 2 位 16 进制数所代表的字符 13void main ()void main ()printf(“ab ct derftgn”);printf(“ab ct derftgn

4、”);printf(htibbj k);printf(htibbj k);程序运行时在打印机上得到以下结果程序运行时在打印机上得到以下结果:f ab c gdef ab c gde h ji k h ji k 注意在显示屏上最后看到的结果与上述打印结果不同注意在显示屏上最后看到的结果与上述打印结果不同,是是:f gdef gde h j k14字符变量的定义形式如下字符变量的定义形式如下:char c1,c2char c1,c2;它表示它表示c1c1和和c2c2为字符型变量为字符型变量,各可以放一个字符各可以放一个字符,因此可因此可以用下面语句对以用下面语句对c1c1、c2c2赋值赋值:c1=

5、ac1=a;c2=b c2=b;一般以一个字节来存放一个字符,或者说一个字符变量一般以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。在内存中占一个字节。将一个字符常量放到一个字符变量中将一个字符常量放到一个字符变量中,实际上并不是把该字实际上并不是把该字符本身放到内存单元中去符本身放到内存单元中去,而是将该字符的相应的而是将该字符的相应的ASCIIASCII代码放到存储单元中。例如字符代码放到存储单元中。例如字符aa的的ASCIIASCII代代码为码为97,97,bb为为98,98,c1 c2c1 c2 97 98 97 98 01100001 011000101516l用双引

6、号括起的一个字符序列用双引号括起的一个字符序列l字符串常量的长度字符串常量的长度:l字符串常量的存储方式:字符串常量的存储方式:所占存储单元数:所占存储单元数:串长度串长度1例如:例如:字符串字符串结束标记结束标记171.1.变量的有关概念变量的有关概念l在程序运行过程中,其值改变的数据,称为变量,在程序运行过程中,其值改变的数据,称为变量,变量用标识符表示,称为变量用标识符表示,称为变量名变量名。l变量必须变量必须“先定义后使用先定义后使用”l系统为变量分配存储单元,存储变量的值。系统为变量分配存储单元,存储变量的值。l编写程序时通过变量名来存、取编写程序时通过变量名来存、取变量值变量值。a

7、510变量值变量值为变量分配的为变量分配的存储单元存储单元变量名变量名例如:例如:18变量定义的一般格式:变量定义的一般格式:数据类型说明符数据类型说明符 变量列表变量列表;例如:例如:int i,j;int i,j;long k,m;long k,m;float x,y;float x,y;char ch1,ch2;char ch1,ch2;19例如:例如:int a=5,b=10+2;int a=5,b=10+2;double x=23.568,y;double x=23.568,y;char ch1=a,ch2=66,char ch1=a,ch2=66,ch3=142;ch3=142;错

8、误的初始化:错误的初始化:int a=3+b,b=5int a=3+b,b=5;float m=n=23.16 float m=n=23.16;20main()main()int a,b,c,d;int a,b,c,d;*指定指定a,b,c,da,b,c,d为整型变量为整型变量 *unsigned u;unsigned u;*指定为无符号整型变量指定为无符号整型变量*/a=12;b=-24;u=10;a=12;b=-24;u=10;c=a+u;d=b+u;c=a+u;d=b+u;printf(a+u=%d b+u=%d,c,d);printf(a+u=%d b+u=%d,c,d);运行结果为运

9、行结果为 a+u a+u b+u=-14b+u=-14 可以看到不同种类的整型数据可以进行算术运算。在本可以看到不同种类的整型数据可以进行算术运算。在本例中是例中是int型数据与型数据与unsigned int型数据进行相加相减运型数据进行相加相减运算。算。21l常用函数常用函数printfprintf、scanfscanf、fabsfabs、sqrtsqrt、sinsin、l函数调用形式函数调用形式putchar(a)putchar(a)sqrt(x sqrt(x)23l按运算类型分类按运算类型分类 1.算术运算符算术运算符 2.关系运算符关系运算符 3.逻辑运算符逻辑运算符 4.位运算符位

10、运算符 5.赋值与赋值组合运算符赋值与赋值组合运算符 6.自增自减运算符自增自减运算符 7.条件运算条件运算 8.指针运算指针运算 9.其它运算符其它运算符l按运算对象的数目分类按运算对象的数目分类 单目运算单目运算 双目运算双目运算 三目运算三目运算24l运算符(运算符(双双目运算符目运算符/单单目运算符)目运算符)+加法运算加法运算 -减法运算减法运算 *乘法运算乘法运算 /除法运算除法运算%求余运算求余运算l优先级优先级:*/%/%同级(高),同级(高),+-同级(低)同级(低)l结合性结合性:相同优先级运算符进行运算时的次序:相同优先级运算符进行运算时的次序 自自左左向向右右(标记为(

11、标记为 )251.1.参加运算的对象都是参加运算的对象都是intint型,结果截取为型,结果截取为intint型型 10/3 10/311/311/31010.0/3 0/3 11/311/3.1/21/21 1./2/210/510/5*3 310/(510/(5*3)3)9%39%31%31%310%310%310%-310%-3-10%3-10%3-10%-3-10%-3=3=3=3.3333=3.66667=0=0.5=6=0=0=1 1=1=1 1=-1-1=-1-1注意:运算对象的数据类型对运算结果的影响注意:运算对象的数据类型对运算结果的影响26l运算符(运算符(双双目运算符目运

12、算符 )大于大于 =大于等于大于等于 小于小于 =575 的值是的值是 1,5757 的值是的值是 0。已知:已知:int a=13,b=2,c=1;成立成立,结果为结果为 1不成立不成立,结果为结果为 成立成立,结果为结果为 1不成立不成立,结果为,结果为 结果为结果为 1与上面与上面等价等价,结果为结果为 1等价等价于于(a-b)a-b)=1 1,结果为结果为 2829303132333435361.+和 运算法只能用于变量,不得用于常量和表达式.如如:5+,(a+b)+均为不合法.几几点注意点注意:372.+,的结合性为从右至左,而一般算术运算符为从左至右。如如:i+和+为同一优先级.i

13、+相当于(i+)例例:#includemain()int i=3,j;j=-i+;printf(i=%d,j=%dn,i,j);运行结果:运行结果:i=4,j=-3381.要慎用要慎用+、运算符。运算符。对于表达式(i+)+(i+)+(i+);我们可能会认为应从左至右:3+4+5=12例例:#include main()int i=3,j;j=(i+)+(i+)+(i+);printf(i=%d,j=%dn,i,j);实际运行结果:实际运行结果:i=6,j=939 先对i进行3次自加,结果i的值为6,然后三个i值相加为18。3+3+3=9 然后再把6赋给i值如果表达式j=(i+)+(i+)+(

14、i+);改为:j=(+i)+(+i)+(+i);则运行结果:则运行结果:i=6,j=18这是因为运算时是先取i的原值:3402.在表达式中,有的运算符为一个字符,有的为两个字符。一般地:自左至右尽可能多地将若干字符组成一个运算符。如如:i+j,究竟理解为(i+)+j还是i+(+j)?41例例:#includemain()int i=3,j=3,m;m=i+j;printf(i=%d,j=%d,m=%dn,i,j,m);运行结果:运行结果:i=4,j=3,m=6对语句m=i+j;系统理解为m=(i+)+j;423.在函数调用时要注意参数的计算顺序,printf(i=%d,i=%d,i,i+);如

15、:int i=3;int j=3;printf(j=%d,j=%d,j+,j);输出结果输出结果:i=4,i=3;j=3,j=3;原因:原因:参数的计算顺序从右到左。4344例例:a+=a =aa (设a12)又:a=5+(c=6)c=6,a=11 a=(b=4)+(c=6)b=4,c=6,a=10 a=(b=10)/(c=2)b=10,c=2,a=5还可用复合赋值运算符作下列运算:步骤:aa144.a =a a a=a a a=12 144=132 a+=132 a=a+(132)=2644546判断判断e1?执行执行e2执行执行e3成立成立不成立不成立47484950例例:in a,b;a

16、=35,a 4;b=(3*5,a*4);结果结果:a=15 b=60若:b=(a=35,a 4),a+5);a+5b 即 20b.3 5=15a a 4=60 (此时a值仍未变)51 x=(a=3,63)赋值表达式,x的值18;x=a=3,6 a 逗号表达式,x的值3.逗号表达式主要用于某些语句中需一次计算多个表达式值的情况。如在循环语句中。思考:思考:若有:int a;a=(3*5,a*4);则:a的值为多少?答案:答案:不确定注意注意:52535455例如例如:(double)a 将a转换为double(int)(x+y)将x+y转换为int(float)(5%3)将5%3转换为float

17、注注:括号不能省略。另:(int)(x+y)否则:intx 会理解为变量intx.若写:(int)x+y,则只会将x转成整型.5657C语言允许双精度、单精度、整型及字符数据之间混合运算 10+a+1.58765.1234 b是允许的。但有一个规则但有一个规则:先转换成同一类型,再计算。58例例:10+a+if d/e其中:i int f float d double e long 10+a:转为int,结果为int if:转为double,结果为double+:转为double d/e:转为double 转为double则运算时则运算时:59 10+a:转为int,结果为int if:转为double,结果为double+:转为double d/e:转为double 转为double则运算时则运算时:60例例:#include main()int a=15,b=20,c;float x=16.82,y=2.74,z;z=(float)(a+b);c=(int)(x+y);printf(z=%f,c=%d,z,c);运行结果:运行结果:z=35.000000,c=19

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(c语言数据类型解析课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|