数据类型及其输入输出资料课件

上传人:仙*** 文档编号:241899003 上传时间:2024-08-03 格式:PPT 页数:53 大小:187KB
返回 下载 相关 举报
数据类型及其输入输出资料课件_第1页
第1页 / 共53页
数据类型及其输入输出资料课件_第2页
第2页 / 共53页
数据类型及其输入输出资料课件_第3页
第3页 / 共53页
点击查看更多>>
资源描述
第二章第二章 数据类型及输入输出数据类型及输入输出内蒙古科技大学工程训练中心本节重点本节重点n数据类型数据类型n常量与变量常量与变量n不同类型的数据的输入输出不同类型的数据的输入输出2024/8/3工程训练中心 徐国海引入引入数据类型数据类型1 1、数据是程序处理的基本对象。数据是程序处理的基本对象。2 2、程序中数据分为变量或常量。、程序中数据分为变量或常量。3 3、每个变量或常量都有确定的数据类型。、每个变量或常量都有确定的数据类型。4 4、每种数据类型都有确定的存储长度、取值范围及允许的操作。、每种数据类型都有确定的存储长度、取值范围及允许的操作。5 5、程序中所有数据必须指定其数据类型。、程序中所有数据必须指定其数据类型。2024/8/3工程训练中心 徐国海数据类型数据类型基本数据类型基本数据类型构造类型构造类型其它类型其它类型整型整型 int字符型字符型 char实型实型枚举类型枚举类型单精度型单精度型float双精度型双精度型double数数 组组结构体结构体共用体共用体指针类型指针类型空空 类类 型型2024/8/3工程训练中心 徐国海常量常量在程序中,常量是指常数或其值不能被改变的量。在程序中,常量是指常数或其值不能被改变的量。1、直接常量:、直接常量:如:如:12,123.5,1.23E7,a,A,8,“hello”,“a”2、符号常量,即用一个标识符代表一个常量。一般用大写字母表、符号常量,即用一个标识符代表一个常量。一般用大写字母表示。符号常量在其作用域内不能改变,也不能再被赋值。示。符号常量在其作用域内不能改变,也不能再被赋值。定义符号常量的方法如:定义符号常量的方法如:define PI 3.14159#define PI 3.1415926 void main()float r,c,s;r=2;c=2*PI*r;s=PI*r*r;printf(“c=%f,s=%f”,c,s);2024/8/3工程训练中心 徐国海常量的类型常量的类型、整型常量、整型常量有三种表示方法:有三种表示方法:十进制整数十进制整数123,-784八进制整数八进制整数 0123=十六进制整数十六进制整数 八进制和十六进制只能表示无符号整数八进制和十六进制只能表示无符号整数 长整数表示为:长整数表示为:123l 123L 无符号整数表示为:无符号整数表示为:123u)83()123(108=)291()123(12301016=x常量分为:整型常量、实型常量、字符常量、字符串常量常量分为:整型常量、实型常量、字符常量、字符串常量2024/8/3工程训练中心 徐国海、实型常量,也称浮点数。、实型常量,也称浮点数。两种表示方法:两种表示方法:()()十进制小数形式十进制小数形式 由数字和小数点组成(必须有小数点)由数字和小数点组成(必须有小数点)1.123,3.1415;()()指数形式指数形式 123e5,123E5都表示都表示 但是但是 1.23E7 为规范化的指数形式。输出指数形式的数据时,为规范化的指数形式。输出指数形式的数据时,按规范化的指数形式输出。(即小数点左边应有一位非零数字)按规范化的指数形式输出。(即小数点左边应有一位非零数字)2024/8/3工程训练中心 徐国海3、字符常量(、字符常量(Character constants)由一对由一对单引号单引号括起的单个字符,称为字符常量。括起的单个字符,称为字符常量。如:如:a,9,+b 退格 单引号 n 换行 ddd 13位八进制数 t 制表符 xhh 12位十六进制数 反斜杠字符 a 响铃 ”双引号 r 回本行开头转义字符(转义字符(Escape Sequences)表示控制字符或具有特定用途的字符。表示控制字符或具有特定用途的字符。2024/8/3工程训练中心 徐国海 在内存中,字符数据并不是把字符本身放到内存单元中,而是将在内存中,字符数据并不是把字符本身放到内存单元中,而是将该字符的相应该字符的相应ASCII码(二进制的形式)放到存储单元中。码(二进制的形式)放到存储单元中。A6501000001a9701100001ASCII二进制如如:有两个字符型数据有两个字符型数据 A 和和a2024/8/3工程训练中心 徐国海4、字符串常量(、字符串常量(String Literals)由一对由一对双引号双引号括起的字符序列称为字符串常量括起的字符序列称为字符串常量,例如:例如:“How do you do?”“china”C规定规定以字符以字符0作为字符串结束的标志作为字符串结束的标志。在内存中所占字节数为在内存中所占字节数为实际字符个数实际字符个数+1 如字符串常量如字符串常量“china”在内存中存储形式如下:在内存中存储形式如下:chin0a2024/8/3工程训练中心 徐国海变量变量1、定义:其值可以改变的量称为变量。、定义:其值可以改变的量称为变量。程序中的程序中的变量必须先定义后使用变量必须先定义后使用。2、变量的定义、赋值(初始化)、变量的定义、赋值(初始化);int sum;char a,b;float r,s,l;double x,y;定义了变量后定义了变量后,变量并没有值,需要给其赋值。变量并没有值,需要给其赋值。也可以在定也可以在定义变量的同时给出初值义变量的同时给出初值,对变量进行初始化。对变量进行初始化。例如例如:int i;i9;/*先定义整型变量先定义整型变量i,然后赋初值然后赋初值9*/2024/8/3工程训练中心 徐国海 float r=1.5;/*定义实型变量定义实型变量r的同时,赋其初值的同时,赋其初值1.5*/char answer=y;/*同上同上*/也可以使被定义的变量的一部分赋初值。也可以使被定义的变量的一部分赋初值。如如 int a,b,c=5;表示定义表示定义a,b,c为整型变量,并且对为整型变量,并且对c进行初始化,使进行初始化,使c值为值为5。注意:注意:如对几个变量同时赋初值为如对几个变量同时赋初值为5,应写成,应写成 int a=5,b=5,c=5;或者或者 int a,b,c;a=b=c=5;而不能写成而不能写成 int a=b=c=5;2024/8/3工程训练中心 徐国海3、对变量名的要求。、对变量名的要求。变量名要做到变量名要做到“见名知意见名知意”,不要使用简单的字符作变量名,不要使用简单的字符作变量名,以增加程序的可读性。以增加程序的可读性。变量名一般用变量名一般用小写字母小写字母表示,长度与所用系统有关表示,长度与所用系统有关(8,c 合法标识符合法标识符非法标识符非法标识符2024/8/3工程训练中心 徐国海变量的类型变量的类型变量分为:整型变量、实型变量、字符型变量变量分为:整型变量、实型变量、字符型变量1、整型变量、整型变量存放形式存放形式整形变量在内存中以二进制的形式存放的,一个整形变量在整形变量在内存中以二进制的形式存放的,一个整形变量在内存中占内存中占个字节。个字节。010变量变量 i (int i10;)变量在内存中的实际存放情况变量在内存中的实际存放情况2024/8/3工程训练中心 徐国海机器内部,数值是以补码表示的。机器内部,数值是以补码表示的。正数:其补码和原码相同。正数:其补码和原码相同。负数:其补码为:该数的绝对值的二进制数按位取反加负数:其补码为:该数的绝对值的二进制数按位取反加1。1011 1 10011111 1 1 1111 1 11011111 1 1 111-35取反取反加加1最高位最高位最高位是符号位,其为最高位是符号位,其为0时是正数,为时是正数,为1时是负数。时是负数。2024/8/3工程训练中心 徐国海分类分类 根据数值的范围可以把变量定义成基本类型、短整型和长整型。根据数值的范围可以把变量定义成基本类型、短整型和长整型。基本类型:用基本类型:用int 标识标识 短整型短整型:用用short int 标识标识(short)长整型长整型:用标识用标识(long)进一步修饰,修饰符进一步修饰,修饰符(无符号数)无符号数)signed(有符号数)有符号数)如果既不指定如果既不指定unsigned也不指定也不指定signed则隐含为有符号数(则隐含为有符号数(signed),),signed可以不写。可以不写。例:例:unsigned long int a,b;2024/8/3工程训练中心 徐国海ANSI标准定义的整数类型标准定义的整数类型类型类型位数位数取取 值值 范范 围围signed int16-3276832767 即即-215(215 1)unsigned int16065535 即即0(216 1)signed short int16-3276832767 即即-215(215 1)unsigned short int16065535 即即0(216 1)long int32-24174836482147483647 即即-231(231 1)unsigned long int3204294967295 即即0(223 1)2024/8/3工程训练中心 徐国海2、实型变量、实型变量 类型类型 (内存中字节数内存中字节数)有效数字有效数字 float(4字节字节)67位位double (8字节字节)1516位位long double (16字节字节)1819位位定义方法:定义方法:(单精度)(单精度)float 变量名变量名(双精度)(双精度)double 变量名变量名2024/8/3工程训练中心 徐国海3、字符型变量、字符型变量 定义方法:定义方法:char 变量名列表变量名列表 char c1,c2,c3;取值范围取值范围 ASCII码字符集中的字符。码字符集中的字符。char c1,c2;c1=e;c2=3 注意:字符串常量不能被赋值到字符变量中,因为字符变量只能注意:字符串常量不能被赋值到字符变量中,因为字符变量只能容纳一个字符。容纳一个字符。区别:区别:a “a”2024/8/3工程训练中心 徐国海数据的输入和输出数据的输入和输出语言中,在语言中,在stdio.h头文件头文件中定义了标准输入输出函数。中定义了标准输入输出函数。、printf()函数函数格式:格式:printf(“格式控制字符串格式控制字符串”,输出项列表输出项列表);功能:将输出项按给定的控制格式输出。功能:将输出项按给定的控制格式输出。例如:例如:printf(“%f”,sum);2、scanf()函数函数格式:格式:scanf(“格式控制字符串格式控制字符串”,输入项列表输入项列表);功能:将输入项按给定的控制格式输入。功能:将输入项按给定的控制格式输入。例如:例如:scanf(“%d%d”,&a,&b);2024/8/3工程训练中心 徐国海 include void main()char ch=a;int k=65;float x=123.456;printf(”%c,%3c,%dn”,ch,ch,ch);printf(”%d%3d%cn”,k,k,k);printf(”%f,%-7.2f,%10.4fn”,x,x,x);输出结果是输出结果是:a,_ _ a,97 65 _ 65 A 123.456001,123.46_,_ _ 123.4560例例1:2024/8/3工程训练中心 徐国海include void main()int a,b;char ch1,ch2;float m,n;scanf(“%d%d”,&a,&b);scanf(“%c%c”,&ch1,&ch2);scanf(“%f,%f”,&m,&n);输入时:输入时:125 785 a b 23.456,612.97例例2:2024/8/3工程训练中心 徐国海本节重点本节重点n掌握运算符的使用掌握运算符的使用n确定表达式的类型、值确定表达式的类型、值n不同类型的数据的转换不同类型的数据的转换2024/8/3工程训练中心 徐国海运算符运算符一、运算符:一、运算符:能够完成某种操作(运算)的符号。能够完成某种操作(运算)的符号。二、根据运算符的运算对象(操作数)的多少,运算符可分为:二、根据运算符的运算对象(操作数)的多少,运算符可分为:单目(一元)运算符单目(一元)运算符 i+-n 双目(二元)运算符双目(二元)运算符 a+b d/e 三目(三元)运算符三目(三元)运算符 xy?x+3:y*9(条件运算符)条件运算符)2024/8/3工程训练中心 徐国海优先级优先级运算符运算符操作数操作数结合性结合性1()-.左左右右2!-+-&*sizeof1右右左左3 */%2左左右右4+-2左左右右5 2左左右右6 =2左左右右7=!=2左左右右8&2左左右右9 2左左右右10|2左左右右11&2左左右右12|2左左右右13?:3右右左左14=*=/=+=2右右左左15,2左左右右2024/8/3工程训练中心 徐国海表达式表达式一、一、C表达式:表达式:由运算符和由运算符和运算对象运算对象构成的式子。构成的式子。运算对象运算对象可以是常量、变量、函数或可以是常量、变量、函数或表达式表达式。二、二、表达式的表达式的书写原则书写原则 (1)C语言的表达式只能采用线性的形式书写。语言的表达式只能采用线性的形式书写。例如例如:应写成应写成1/3+1/3+i+j*j*ji+j*j*j。应写成应写成(a+ba+b)/(c+dc+d)*e+f*e+f。2024/8/3工程训练中心 徐国海(2)C语语言言的的表表达达式式只只能能使使用用C语语言言中中合合法法的的运运算算符符和和操操作作数数,对对有有些些操操作作必须调用库函数必须调用库函数完成完成,而且运算符不能省略。而且运算符不能省略。例如例如:#include r2应写成应写成3.14159*r*r。应写成应写成0.5*a*b*sin(alph)。|xy|应写成应写成fabs(xy)。y+2X 应写成应写成y+pow(2,x)。2024/8/3工程训练中心 徐国海三、表达式在求值时,遵循以下规则三、表达式在求值时,遵循以下规则(1)优先级:优先级:不同优先级的运算符出现在同一表达式时,按运算不同优先级的运算符出现在同一表达式时,按运算符的优先级的高低次序执行。符的优先级的高低次序执行。例如:例如:d=a+b*c;/*先乘后加先乘后加*/(2 2)结合性:结合性:是指表达式中出现同优先级的操作符时,该先做哪是指表达式中出现同优先级的操作符时,该先做哪个操作符的规定。个操作符的规定。结合方向:结合方向:“自左向右自左向右”、“自右向左自右向左”例如:例如:a+b-c 从左至右从左至右 d=a=b=3 从右至左从右至左2024/8/3工程训练中心 徐国海四、表达式的四、表达式的分类分类 C语语言言表表达达式式种种类类很很多多,有有多多种种分分类类方方法法。我我们们一一般般依依据据运运算算的特征将表达式分为的特征将表达式分为:算术表达式算术表达式,如如a+b*2.0-3.0/5.0 关关系系表表达达式式,如如x=y,关关系系表表达达式式可可以以认认为为是是逻逻辑辑表表达达式式的的特殊情况。特殊情况。逻辑表达式逻辑表达式,如(如(x=2)&(xb)?a:b 逗号表达式逗号表达式,如如a=2,b=a*a,c=sqrt(b)2024/8/3工程训练中心 徐国海五、表达式值的五、表达式值的数据类型数据类型(1)每个表达式都有一个确定的值,因而有确定的数据类型。)每个表达式都有一个确定的值,因而有确定的数据类型。(2)表达式的分类和数据类型取决与最后执行的运算符,)表达式的分类和数据类型取决与最后执行的运算符,如:如:34.5+(76)为算术表达式,类型是为算术表达式,类型是double型,值型,值35.5 34.5+76 为关系表达式,类型是为关系表达式,类型是int型,值型,值12024/8/3工程训练中心 徐国海算术运算符和算术表达式算术运算符和算术表达式 1、分类、分类 单目运算符单目运算符 -负号运算负号运算 +自增自增 -自减自减 双目运算符双目运算符 +加加 -减减 *乘乘 /除除%求余求余 “/”如果是两个整型数相除,取整;如有一个为实数时,其意义就如果是两个整型数相除,取整;如有一个为实数时,其意义就是实数除,结果为是实数除,结果为double型。型。5/2=2 5.0/2.0=2.5 5.0/2=2.5 5/2.0=2.5 “%”取余数,只能对整数取余数,不能对浮点数取余数。取余数,只能对整数取余数,不能对浮点数取余数。运算结果运算结果的符号与左操作数相同。的符号与左操作数相同。5%2=1 -35%8=-3 35%-8=32024/8/3工程训练中心 徐国海2、自增操作符和自减操作符、自增操作符和自减操作符格式格式:+i,i+-i,i-作用作用:是使自变量:是使自变量i的值加的值加1或减或减1,相当于,相当于i=i+1或或i=i-1。前置前置自增或前置自减操作:表示先修改操作数使之增自增或前置自减操作:表示先修改操作数使之增1或减或减1,然后取修改后的操作数的值作为表达式的值。,然后取修改后的操作数的值作为表达式的值。后置后置自增或后置自减操作:表示在表达式中先取操作数的值,自增或后置自减操作:表示在表达式中先取操作数的值,然后再将操作数值增然后再将操作数值增1或减或减1。例如:例如:j=i+;j的值为的值为3(首先将(首先将i的原值赋给的原值赋给j,然后然后i自身再加自身再加1)j=+i;j的值为的值为4(i自身先加自身先加1,然后再将加,然后再将加1后的值赋给后的值赋给j)2024/8/3工程训练中心 徐国海#includevoid main()int i,j,k;i=3;j=i+;k=+i;printf(“i=%d,j=%d,k=%dn”,i,j,k);范例:范例:输出结果输出结果:i=5,j=3,k=52024/8/3工程训练中心 徐国海2、在表达式中如果有在表达式中如果有2个以上的个以上的“+”或或“-”连写在一起,则编译器首先连写在一起,则编译器首先识别前面两个识别前面两个+或或-为自增或自减操作符。例如:为自增或自减操作符。例如:在使用自增或自减运算符时注意如下几个问题在使用自增或自减运算符时注意如下几个问题:1、自加或自减运算只能用于变量,不能用于常量或表达式;、自加或自减运算只能用于变量,不能用于常量或表达式;错误:错误:25+(i+j)+例如例如-i+,只能理解为只能理解为-(i+)。因为因为(-i)+为表达式,表达式是不能自加自减的。为表达式,表达式是不能自加自减的。i3;j-i+;printf(“%d”,j);输出结果应为输出结果应为-3,而不是是,而不是是-4。int a=1,b=5,c;c=a+b;c=a+b;c=a+b;正确:正确:c=6错误:错误:+不是双目运算符不是双目运算符正确:正确:a+b2024/8/3工程训练中心 徐国海3、表达式中包含有自增、自减运算时表达式中包含有自增、自减运算时,容易出错容易出错,务请小心。务请小心。如有:如有:i=1;则:则:类似上面分析类似上面分析,应为应为3,当然表达式计算完成当然表达式计算完成后后i 的值同样改的值同样改变为变为4。(+i)+(+i)+(+i)的值为多少呢?的值为多少呢?是是9(=2+3+4)吗?不对!吗?不对!计算时先对整个表达式扫描计算时先对整个表达式扫描,i 先自增先自增3次次,由由1234,如此计算结果为如此计算结果为4+4+4,等于等于12。(i+)+(i+)+(i+)的值又是多少呢?的值又是多少呢?2024/8/3工程训练中心 徐国海赋值运算符和赋值表达式赋值运算符和赋值表达式1、赋值运算符、赋值运算符:=使用方法使用方法:变量表达式变量表达式 赋赋值值运运算算时时先先计计算算右右边边表表达达式式的的值值,然然后后将将右右边边表表达达式式的的值值赋赋给左边变量给左边变量,并以此值作为整个赋值表达式的值。并以此值作为整个赋值表达式的值。(1)赋值运算的优先级为第赋值运算的优先级为第14级级,次低。次低。如:如:int i,a,b,c,p;i=3+5%2;/*先计算先计算3+5%2,得到得到4,然后将然后将4 赋给赋给i*/。p=(a+b)/c;p=a+b/c;2024/8/3工程训练中心 徐国海(2)理解以下两赋值表达式的含义:)理解以下两赋值表达式的含义:y5;n5;xy;nn1;(3)赋值运算符具有)赋值运算符具有“自右向左自右向左”的结合性,赋值运算符右边的表的结合性,赋值运算符右边的表达式也可以是赋值表达式:达式也可以是赋值表达式:例如:例如:ab5;等同于等同于 a(b=5);2024/8/3工程训练中心 徐国海2、复合赋值运算、复合赋值运算 算术复合赋值运算符算术复合赋值运算符:+=、=、*=、/=、%=位复合赋值运算符位复合赋值运算符:&=、|=、=、=、&|&和和|运算符的优先级低于算术运算符和关系运算符,而运算符的优先级低于算术运算符和关系运算符,而高于赋值运算符。高于赋值运算符。三、操作数是逻辑量(三、操作数是逻辑量(“真真”或或“假假”,非,非0为真)为真)(a+5)&-8 同为真时结果为真同为真时结果为真 !5 6|0 只要有一个为真时结果就为真只要有一个为真时结果就为真四、逻辑表达式的运算结果仍然是逻辑量四、逻辑表达式的运算结果仍然是逻辑量2024/8/3工程训练中心 徐国海关系运算符和关系表达式关系运算符和关系表达式一、关系运算符有:一、关系运算符有:、=、=、!=、=的优先级相同的优先级相同,=、!=的优先级相同,的优先级相同,前者的前者的优先级高于后者。优先级高于后者。二、关系运算符的优先级低于算术运算二、关系运算符的优先级低于算术运算,高于逻辑运算高于逻辑运算&、|,也高也高于赋值运于赋值运算。算。24+(53)c=78三、关系表达式的运算结果时逻辑量三、关系表达式的运算结果时逻辑量四、自左向右结合。四、自左向右结合。abc 假设假设a5,b3,c2 该表达式的值为该表达式的值为0五、操作数也可以是字符型数据五、操作数也可以是字符型数据 如:如:af2024/8/3工程训练中心 徐国海 条件运算符和条件表达式条件运算符和条件表达式一、条件运算符的语法形式:一、条件运算符的语法形式:?:解释为:解释为:?:例如:例如:x=a b?a:b;/将将a,b中较小数赋中较小数赋x 事实上,三目运算操作是简单事实上,三目运算操作是简单if语句的另一种表达方式。语句的另一种表达方式。if(ab?a:cd?c:d 相当于相当于ab?a:(cd?c:d)2024/8/3工程训练中心 徐国海include void main()int x;scanf(%d,&x);x0?printf(%s,正数正数):printf(%s,负数负数);例例:判断整数的正负。判断整数的正负。2024/8/3工程训练中心 徐国海逗号运算符和逗号表达式逗号运算符和逗号表达式一、逗号运算是双目运算一、逗号运算是双目运算,一般形式一般形式如下如下:表达式表达式 1,表达式表达式 2 先计算表达式先计算表达式 1,再计算表达式再计算表达式 2,并以此作为整个表达式的值。并以此作为整个表达式的值。如:如:a=2,a*6,先计算先计算a=2,再计算再计算a*6,并以此作为整个表达式的值并以此作为整个表达式的值,表达式的值为表达式的值为 12。2024/8/3工程训练中心 徐国海二、逗号运算的优先级最低二、逗号运算的优先级最低,结合自左向右。结合自左向右。逗号表达式的更一般使用形式为逗号表达式的更一般使用形式为:表达式表达式 1,1,表达式表达式 2,2,表达式表达式 3,3,表达式表达式n n 先先计计算算表表达达式式 1,1,再再计计算算表表达达式式 2,2,再再计计算算表表达达式式 3,3,再再计算表达式计算表达式n n的值的值,并以此作为整个表达式的值。并以此作为整个表达式的值。如:表达式如:表达式x=a=3,6*x,6*a,a+xx=a=3,6*x,6*a,a+x的值为的值为 。逗号运算又称顺序求值运算。逗号运算又称顺序求值运算。62024/8/3工程训练中心 徐国海include void main()int i,j,k;i=1,j=2,k=3;printf(“%d%d%dn”,i,j,k);include void main()int i,j,k;i=1;j=2;k=3;printf(“%d%d%dn”,i,j,k);并不是任何地方出现的逗号都是逗号运算符,并不是任何地方出现的逗号都是逗号运算符,例如:例如:printf(“%d%d%dn”,i,j,k);(是参数分隔符)是参数分隔符)如果写成:如果写成:printf(“%d%d%dn”,(i,j,k),j,k);相当于:相当于:printf(“%d%d%dn”,k,j,k);2024/8/3工程训练中心 徐国海求字节数运算求字节数运算 运算符运算符:sizeof(数据类型标识符数据类型标识符)或或 sizeof(表达式表达式)求求字字节节数数运运算算是是单单目目运运算算,操操作作数数可可以以是是类类型型名名,也也可可以以是是变变量、量、表达式表达式,用以求得相应类型或数据所占的字节数。用以求得相应类型或数据所占的字节数。此运算的优先级与取地址运算优先级相同。此运算的优先级与取地址运算优先级相同。例如:例如:sizeof(float)值为值为4,单精度类型占,单精度类型占4个字节个字节 sizeof(2*3)值为值为2,算术表达式,算术表达式2*3是是int型型2024/8/3工程训练中心 徐国海数据的类型转换数据的类型转换一、系统自动进行的类型转化一、系统自动进行的类型转化由系统自动完成类型转换由系统自动完成类型转换,转换的规则如下:转换的规则如下:int unsigned long double short,char float纵纵向向箭箭头头方方向向表表示示必必定定要要进进行行的的转转换换,short型型、char型型数数据据必必定定先先转转换成换成int型型,float型数据必定先转换成型数据必定先转换成double型型,再进行运算。再进行运算。横横向向箭箭头头方方向向表表示示类类型型自自动动转转换换的的方方向向。由由低低向向高高转转换换,int型型最最低低,double型最高。型最高。2024/8/3工程训练中心 徐国海二、赋值时的类型转换二、赋值时的类型转换 (1)将实型数据赋给整型变量时将实型数据赋给整型变量时,舍弃实数的小数部分。舍弃实数的小数部分。如:如:int i;i=1.23;/*结果结果i 的值为的值为1*/(2)将将整整型型数数据据赋赋给给单单、双双精精度度型型变变量量时时,数数值值大大小小不不变变,但但以以浮浮点形式存储到变点形式存储到变量中。量中。(3)将字符型数据赋给整型变量时将字符型数据赋给整型变量时,由于字符数据只占一个字节由于字符数据只占一个字节,而整型变量为两个字节而整型变量为两个字节,将字符的数据放整型变量的低将字符的数据放整型变量的低8位位,而而对整型变量的高对整型变量的高8位进行扩充。位进行扩充。2024/8/3工程训练中心 徐国海(4)将基本整型数据赋给长整型变量时将基本整型数据赋给长整型变量时,基本整型数据放长整型变基本整型数据放长整型变量低量低16位位,高高16位用符号位扩充。反之将长整型数据赋给整型变位用符号位扩充。反之将长整型数据赋给整型变量时量时,只需将长整型数据的低只需将长整型数据的低16位原封不动送整型变位原封不动送整型变量中。量中。(5)将无符号整型数据赋给长整型变量时将无符号整型数据赋给长整型变量时,不存在符号扩展的问题不存在符号扩展的问题,只需将高位补只需将高位补0即可。将无符号整型数据赋给一个占字节数相同即可。将无符号整型数据赋给一个占字节数相同的整型变量时的整型变量时,将无符号整型数据原样送整型变量中将无符号整型数据原样送整型变量中,并将最高并将最高位当作符号位位当作符号位,如果数据超出相应的整型范围如果数据超出相应的整型范围,将产生数据错误。将产生数据错误。如果将整型数据赋给占字节数相同的无符号整型变量如果将整型数据赋给占字节数相同的无符号整型变量,也是原样也是原样照赋照赋,最高位作数值处理。最高位作数值处理。2024/8/3工程训练中心 徐国海三、强制类型转换三、强制类型转换强制类型转换通过类型转换运算进行。强制类型转换通过类型转换运算进行。格式格式:(类型名)(表达式)(类型名)(表达式)功能:功能:将表达式的类型强制转换成类型名指定的类型。将表达式的类型强制转换成类型名指定的类型。如如:float x=5.2,y=6.3;int z;z=(int)(x+y);(int)(x+y)将表达式将表达式x+y的值强制转换成整型的值强制转换成整型 强强制制类类型型转转换换在在将将高高类类型型转转换换为为低低类类型型时时,数数据据精精度度受受损损,是是一一种种不不安安全全的的转转换换。强强制制类类型型转转换换是是暂暂时时性性的的,一一次次性性的的,并并不不永永久改变所转换表达式的类型。久改变所转换表达式的类型。如如:int a=7;double b;b=(double)a+5;(double)a为双精度为双精度,a依然为整型量。依然为整型量。2024/8/3工程训练中心 徐国海作业作业n课本课本40页习题页习题n补充:课本补充:课本21页转义字符的使用及其含义。页转义字符的使用及其含义。2024/8/3工程训练中心 徐国海2024/8/3工程训练中心 徐国海
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!