C语言程序设计基本数据类型及运算.pptx

上传人:莉*** 文档编号:87391630 上传时间:2023-04-16 格式:PPTX 页数:61 大小:321.26KB
返回 下载 相关 举报
C语言程序设计基本数据类型及运算.pptx_第1页
第1页 / 共61页
C语言程序设计基本数据类型及运算.pptx_第2页
第2页 / 共61页
点击查看更多>>
资源描述

《C语言程序设计基本数据类型及运算.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计基本数据类型及运算.pptx(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1本章主要内容本章介绍C语言的基础,包括:数据类型运算符和表达式均是程序设计的基本知识为什么讨论这些知识?通常程序要对数据进行操作处理:处理的对象是数据通过运算符和表达式进行操作第1页/共61页2例如:【例2.1】计算圆的面积,半径为 5 cm。程序如下:程序如下:main()float r r,areaarea;r r=5 5;areaarea=3.143.14*r r*r r;printf(%fn,areaarea);运算结果是输出运算结果是输出圆的面积:圆的面积:78.50000078.500000程序中用到的数据:r、area、5、3.14对数据进行的运算:*、=例jc2_1第2页/共

2、61页3分析:计算机操作处理时,要完成以下工作:在内存中给半径在内存中给半径 r 和运算结果和运算结果 area 开辟存储空间,存放它们的值。开辟存储空间,存放它们的值。应该留多大的地方来存放它们的值?数据数据 5 和和 3.14 与与 r 、area 不同,它们是在编写程序时就给出确定的值,在运不同,它们是在编写程序时就给出确定的值,在运算过程中不会改变。算过程中不会改变。这样的数计算机怎么处理?对对整数 5 和和小数3.14 ,计算机,计算机存放时是否有区别?涉及数据类型的基本知识第3页/共61页4C语言的数据类型 C数据类型数组类型结构体类型共用体类型枚举类型整型整型 字符型字符型 实实

3、型型(浮浮点点型型)空类型空类型单精度型单精度型 双精度型双精度型 基本类型基本类型指针类型构造类型本章讨论本章讨论基本类型数据基本类型数据第4页/共61页52.1.1 整型数据 1整型数据的类型基本整型数据 intint,分配 2 2 ByteByte短整型数据 short intshort int,分配 2 2 ByteByte长整型数据 long intlong int,分配 4 4 ByteByte整型数据均以二进制补码二进制补码形式存储问题:问题:为什么要采用补码?为什么要采用补码?如何表示?如何表示?第5页/共61页6计算机中正、负数的表示 例如:例如:109 109(110110

4、1)(1101101)2 2要区别:要区别:109 109 和和 109 109 方法是:方法是:将符号也数码化即:正的符号 用 0 表示 负的符号 用 1 表示 计算机中的数表示方法是:计算机中的数表示方法是:符号位符号位二进制数值二进制数值(以以 8bit 为例为例)109 110 1101 0110 1101109 110 1101 1110 1101第6页/共61页7问题:计算机计算复杂化例如计算:例如计算:(-19-19)+(+22+22)1001 0011+001 0011+0001 0110001 0110解决的方法是:解决的方法是:使用使用反码反码或或补码补码的表示方法(按前述

5、的表示方法(按前述表示的编码称为表示的编码称为原码原码),即能将减法一律),即能将减法一律转换为加法。转换为加法。需要判断符号是否相同:需要判断符号是否相同:如果相同,结果符号不变,并进行绝对值相加如果相同,结果符号不变,并进行绝对值相加如果相同,结果符号不变,并进行绝对值相加如果相同,结果符号不变,并进行绝对值相加如果不同,结果取绝对值大的数的符号,并进如果不同,结果取绝对值大的数的符号,并进如果不同,结果取绝对值大的数的符号,并进如果不同,结果取绝对值大的数的符号,并进行绝对值相减行绝对值相减行绝对值相减行绝对值相减第7页/共61页8原码、反码和补码正数:原码、反码、补码相同符号位为0,数

6、值为对应的二进制数。109 01101101原原=01101101反反=01101101补补l l负数负数:原码原码符号位为符号位为1 1,数值为绝对值的二进制,数值为绝对值的二进制数。数。10911101101原反码反码符号位为符号位为1 1,数值为绝对值的二进制,数值为绝对值的二进制数各位变反。数各位变反。10910010010反 补码补码符号位为符号位为1 1,数值为绝对值的二进制,数值为绝对值的二进制数各位变反加数各位变反加1 1。10910010011补第8页/共61页92.有符号和无符号整型数据有符号的整型数据 signed intsigned int无符号的整型数据 unsign

7、ed intunsigned int区别是将最高位看作符号位还是数据位例如:例如:1111 1111 1010 1000作为作为有符号数有符号数使用时,最高为符号位使用时,最高为符号位为负数,值是:为负数,值是:-88(再求一次补)(再求一次补)作为作为无符号数无符号数使用时,最高为数据位使用时,最高为数据位为无符号的数,值是:为无符号的数,值是:65448第9页/共61页10例如:main()unsigned int m;m=65448;printf(nm=%dn,m);printf(m=%un,m);例jc2_a输出结果:m=-88m=65448按有符号数输出按无符号数输出第10页/共61

8、页11整型数据的类型及规定 方括号表示可选项方括号表示可选项int 分配2 Byte,long分配4 Byte类型名称类型名称类型名称类型名称类型符类型符类型符类型符bitbit取值范围取值范围取值范围取值范围整型整型整型整型(短整型短整型短整型短整型)signed signed int int signed signed shortshort int int 1616-2 215152 21515-1-1(-32768(-3276832767)32767)无符号整型无符号整型无符号整型无符号整型unsignedunsigned int int16160 0 2 21616-1-1(0(065

9、535)65535)长整型长整型长整型长整型 signed signed longlong int int3232-2-231312 23131-1-1无符号长整型无符号长整型无符号长整型无符号长整型 unsigned longunsigned long int int32320 0 2 23232-1-1第11页/共61页122.1.2 实型数据 1实型数据的类型 单精度实型数据 float,分配4 Byte双精度实型数据double,分配 8 Byte2实型数据的存储 单精度实型单精度实型指数部分指数部分小数部分小数部分 小数的符号位指数的符号位第12页/共61页13实型数据的类型及规定

10、C C标准并未具体规定各种实型数据所占字节数,也不标准并未具体规定各种实型数据所占字节数,也不规定具体小数和指数部分的位数。规定具体小数和指数部分的位数。一般而言,小数部分位数多,数据表示的有效数字多,一般而言,小数部分位数多,数据表示的有效数字多,精度就高;而指数部分位数多,则表示的数据范围更精度就高;而指数部分位数多,则表示的数据范围更大。大。有效数字的意义?类型类型类型类型类型符类型符类型符类型符ByteByte绝对值的范围绝对值的范围绝对值的范围绝对值的范围有效数字有效数字有效数字有效数字单精度型单精度型单精度型单精度型 floatfloat4 41010-37 -37 10 1038

11、387 78 8 位位位位双精度型双精度型双精度型双精度型 doubledouble8 81010-307-307 101030830815151616位位位位例例例例jC2_ajC2_ajC2_ajC2_a第13页/共61页142.1.3 字符型数据 字符型数据字符型数据char,分配分配 1 Byte 字符型数据是指字母、数字、各种符号等用字符型数据是指字母、数字、各种符号等用ASCIIASCII值表示的字符值表示的字符 例如例如 a a 是一个是一个charchar类型数据,称作字符常量,存储:类型数据,称作字符常量,存储:0 1 1 0 0 0 0 12.1.4 2.1.4 空类型l

12、l空类型voidl l通常与指针或函数结合使用 第14页/共61页152.2 常量、变量与标准函数 主要内容:常量变量标准库函数第15页/共61页162.2.1 常量 在运行程序的过程中值保持不变的量1整型常量 十进制十进制:09八进制八进制:07,以 0 0开头十六进制十六进制:09,AF/af,以 0 0 x x或 0 0X X 开头例如:100 -8 0 +123100 -8 0 +123010 024 0100 073010 024 0100 0730 0 x38 0 x10 0X10 0XFF 0 x0ax38 0 x10 0X10 0XFF 0 x0a第16页/共61页171.整型

13、常量整型常量的类型:根据值大小默认类型。整型常量后面加l l或L L,则认为是long int型 例如:123L、0L、432l、0 x100l注意:l l十六进制常量中可以使用大写字母AF,也可以使用小写字母af。l l八进制常量中不能出现数字 8 或 9例如:018、0921非法第17页/共61页182.实型常量 十进制形式十进制形式 1.0 1.+12.0 -12.0 0.0指数形式指数形式 1e3 1.8e-3 -123E-6 -.1E-3等价于:等价于:1101103 3 1.810 1.810-3-3 -1231012310-6-6 -0.1100.110-3-3指数只能是整数,而

14、尾数则可以是整数也可以是小数,无论指数或尾数均不能省略例如:1 1e e、E.5E.5、E-3E-3 非法实型常量的类型:默认为doubledouble型,后面加F F(或f f),则强调表示该数是float类型例如:3.5f f、1e2F F 第18页/共61页193.字符型常量 可视字符常量 单引号括起来的单个可视字符例如:a、A、+、3、等 转义字符常量单引号括起来的 与可视字符可视字符组合,例如:0000字符串结束标志字符串结束标志字符串结束标志字符串结束标志 n n回车换行回车换行回车换行回车换行 t t跳到下一个输出位置跳到下一个输出位置跳到下一个输出位置跳到下一个输出位置 双引号

15、字符双引号字符双引号字符双引号字符 dddddd dddddd为为为为1 1到到到到3 3位八进制数所代表的字符位八进制数所代表的字符位八进制数所代表的字符位八进制数所代表的字符 xhhxhh hhhh为为为为1 1到到到到2 2位十六进制数所代表的字符位十六进制数所代表的字符位十六进制数所代表的字符位十六进制数所代表的字符第19页/共61页204.字符串常量 用双引号括起的一个字符序列例如:ABC、123、a、nt nGood morning字符串常量的长度:所包含的字符个数 字符串常量的存储方式:n nGG o o o o d dmm o o r rn ni i n n g g 00a a

16、00所占存储单元数:串长度1例如:字符串结束标记第20页/共61页215.符号常量 以标识符来代表的常量以标识符来代表的常量事先编译预处理命令事先编译预处理命令definedefine定义定义编译时先由系统替换为它所代表的常量,再进编译时先由系统替换为它所代表的常量,再进行编译行编译例如:#define define LENLEN 2.52.5main()main()float a,b;float a,b;a=2*3.14*a=2*3.14*LENLEN;b=3.14*b=3.14*LENLEN*LENLEN;printf(a=%f,b=%fn,a,b);printf(a=%f,b=%fn,a

17、,b);定义符号常量定义符号常量使用符号常量使用符号常量编译前系统进行替换编译前系统进行替换第21页/共61页225.符号常量main()main()float a,b;float a,b;a=2*3.14*a=2*3.14*2.5;b=3.14*b=3.14*2.5*2.5;printf(a=%f,b=%fn,a,b);printf(a=%f,b=%fn,a,b);define是编译预处理命令,必须以“#”开头编译预处理命令在第7章讨论。替换为替换为第22页/共61页232.2.2 变量 1.变量的有关概念 在程序运行过程中,其值改变的数据,称为变量,变量用标识符表示,称为在程序运行过程中,

18、其值改变的数据,称为变量,变量用标识符表示,称为变量名。变量必须变量必须“先定义后使用先定义后使用”系统为变量分配存储单元,存储变量的值。系统为变量分配存储单元,存储变量的值。编写程序时通过变量名来存、取编写程序时通过变量名来存、取变量值。a a510510变量值变量值为变量分配的为变量分配的存储单元存储单元变量名变量名例如:有变量a a它的值是5 51010第23页/共61页242.变量定义变量定义的一般格式:变量定义的一般格式:数据类型说明符 变量列表;例如:int i,j;int i,j;long k,m;long k,m;float x,y;float x,y;char ch1,ch2

19、;char ch1,ch2;必须使用合法的标识符作变量名必须使用合法的标识符作变量名不能使用关键字为变量命名不能使用关键字为变量命名第24页/共61页253.变量的初始化:允许在说明变量的时候对变量赋初值。允许在说明变量的时候对变量赋初值。例如:int a=5,b=10+2;double x=23.568,y;double x=23.568,y;char ch1=a,ch2=66,ch3=142;char ch1=a,ch2=66,ch3=142;表示定义变量并对变量存储单元赋值。表示定义变量并对变量存储单元赋值。错误的初始化:int a=3+b,b=5;float m=n=23.16;第25

20、页/共61页262.2.3 标准库函数 由由C C编编译译系系统统定定义义的的一一种种函函数数,存存放放在在系系统统函函数数库库中中,用用户户可可以以根根据据需需要要随随时时调用调用常用函数如:printfprintf、scanfscanf、fabsfabs、sqrtsqrt、sinsin、(常用数学函数参见教材 P30 P30 表表2.52.5)函数调用形式:函数名(参数表)例如:putchar(a)putchar(a)sqrt(x)sqrt(x)例jc2_3第26页/共61页272.3 运算符和表达式主要内容:算术运算符和算术表达式赋值运算符和赋值表达式关系运算符和关系表达式逻辑运算符和逻

21、辑表达式位运算符和位运算表达式条件运算符和条件表达式逗号运算符和逗号表达式其他运算符及其运算第27页/共61页28运算符的有关概念作用:对运算对象完成规定的操作运算类型:按运算对象分:单目、双目、三目按功能分:算术、赋值、关系、逻辑条件、逗号、位、其他第28页/共61页29运算符的优先级和结合性优先级指各种运算符号的运算优先顺序例如:例如:算术运算优先于关系运算 算术运算中先*/后+-l l结合性结合性 指运算符号和运算对象的结合方向指运算符号和运算对象的结合方向 分为:从左向右分为:从左向右(左结合左结合)和从右向左和从右向左(右结合右结合)例如:例如:算术运算符为算术运算符为左结合左结合

22、a-ba-b+4 4 赋值运算符为赋值运算符为右结合右结合 a=b=5a=b=5(C C语言规定见教材语言规定见教材 P297 P297 附录附录B B)第29页/共61页30本章涉及的运算符+-*/%+-*/%+-+-=+=-=*=/=%=+=-=*=/=%=&=|=!=&|&|!&|&|?:,&sizeof (数据类型标识符)类型类型类型类型种类种类种类种类算术运算符算术运算符算术运算符算术运算符赋值运算符赋值运算符赋值运算符赋值运算符关系运算符关系运算符关系运算符关系运算符逻辑运算符逻辑运算符逻辑运算符逻辑运算符位运算符位运算符位运算符位运算符条件运算符条件运算符条件运算符条件运算符逗号

23、运算符逗号运算符逗号运算符逗号运算符其他运算符其他运算符其他运算符其他运算符第30页/共61页31表达式的有关概念什么是表达式由运算符运算符将运算对象连接成的式子,它描述了一个具体的求值运算过程。计算表达式的值按照运算符的运算规则求值求值时注意运算符的优先级和结合性表达式值的类型自动转换强制转换 第31页/共61页32例如:表达式:150+b*212.456 b=(+a)-2a/=a*=(a=2)f=abc-a|+b&c+max=ab?a:b a=3,a+=3,a*a 1/(float)a+6 第32页/共61页33算术运算算术运算符的优先级()+-+-*/%+-同级 同级 同级 单目单目 双

24、目双目 高高 低低l l没有乘方运算符没有乘方运算符,要计算,要计算a a3 3要写作要写作 a*a*a a*a*a 的连乘,的连乘,或用标准库函数或用标准库函数 pow(a,3)pow(a,3)l l“/”的运算对象可为各种类型数据,但是当进行两的运算对象可为各种类型数据,但是当进行两个整型数据相除时,运算结果也是整型数据个整型数据相除时,运算结果也是整型数据 l l“%”要求运算对象必须是整型数据,功能是求要求运算对象必须是整型数据,功能是求两数相除的余数,余数的符号与被除数的符号相两数相除的余数,余数的符号与被除数的符号相同。同。第33页/共61页34自增自减运算+-是是单目运算符 有前

25、缀和后缀有前缀和后缀两种形式 前缀形式前缀形式:先自增(自减)再引用;后缀形式后缀形式:先引用再自增(自减);功能:前缀形式前缀形式 +a 等价于等价于 a=a+1 -a 等价于等价于 a=a 1 后缀形式后缀形式 a+等价于等价于 a=a+1 a-等价于等价于 a=a 1表达式的值会不同第34页/共61页35例如:当 a5 时 +a 表达式的值为表达式的值为 6,且且 a6 a+表达式的值为表达式的值为5,且且 a6 b=+a 等价于等价于 a=a+1;b=a 表达式的值为6 6,且 a=6,a=6,b=6b=6 b=a+等价于等价于 b=a;a=a+1 表达式的值为5,且 a=6,a=6,

26、b=5b=5 第35页/共61页36说明:+和和 -的运算对象只能是变量(或运算结的运算对象只能是变量(或运算结果是变量的表达式)果是变量的表达式),不能是常量(或运算结不能是常量(或运算结果是数值的表达式)。果是数值的表达式)。例如:例如:5+5+、(a+2)+a+2)+不合法。具有右结合性,结合方向为从右到左。具有右结合性,结合方向为从右到左。例如:例如:a+a+等价于 -(-(a+)a+)如果有多个运算符连续出现时,如果有多个运算符连续出现时,C C系统尽可能系统尽可能多的从左到右将字符组合成一个运算符多的从左到右将字符组合成一个运算符例如:例如:i+ji+j 等价于 (i+)+ji+)

27、+j -i+-j-i+-j 等价于-(-(i+)+(-j)i+)+(-j)第36页/共61页37main()int a=5;printf(%d%dn,a,a+);说明(续):对函数参数的求值顺序:Turbo C系统先计算最右边的参数值,再依次计算左面的参数值。【例2.5】有多个函数参数且为同一变量自增的运算处理。输出结果:6 5运行例2.5第37页/共61页38说明(续):【例【例2.62.6】有多个函数参数且为同一变量多次自增的运算处理。】有多个函数参数且为同一变量多次自增的运算处理。main()int a=5;printf(%d%dn,a,(a+)+(a+);输出结果:7 11运行例2.6

28、第38页/共61页39赋值运算赋值运算符(右结合)=+=-=*=/=%=&=|=赋值表达式 将将表达式的值表达式的值存入存入变量变量对应的内存单元中对应的内存单元中m=12b=(+a)-2 m%=3+n 等价于 m=m%(3+n)x*=(x=5)第39页/共61页40说明:赋值号左边必须是变量,右边可以是C语言任意合法的表达式例如:例如:n=t+210 等价于:a=(b=(b*c)10)赋值号与数学中的等号含义不同例如:例如:数学中 a=b 等价于 b=a C语言中 a=b 不等价于 b=a第40页/共61页41关系运算关系运算符(左结合)=!=较高 较低关系表达式用关系运算符将运算对象连接成

29、的式子 例如:例如:12=c 等价于 a=(b=c)与 (a=b)=c 不等价关系运算符优先于赋值,低于算术第41页/共61页42说明:关系运算的结果应该是逻辑值。C语言用数值用 1 表示逻辑真,0 表示逻辑假例如:7575 的值是 1,5757 的值是 0 abab的值是 0,aba=z 逻辑运算符的优先级 和结合性:!是单目运算符,右结合右结合,高于算术&和|是双目运算符,左结合左结合,高于赋值运算符,低于关系运算符第44页/共61页45逻辑运算规则从左到右依次进行逻辑计算运算对象为非非0 0表示逻辑真逻辑真运算对象为 0 0 表示逻辑假逻辑假逻辑运算的结果为 0 或 1例如设:a=15,

30、b=0,c=-2 a&b&c 结果为0 a|b|c 结果为1 (a+c)|b&c 结果为1第45页/共61页46逻辑运算规则(续)运算按照从左至右的顺序进行,一旦能够确定逻辑表达式的值,就立即结束运算逻辑运算的短路性质例如设:a=1,b=0,c=-2a&b&c(a+)|+b&-c为 0,运算终止,表达式值值为 0为非0,运算终止,表达式值为 1且a为2,b为0,c为-2(b,c保持原值)第46页/共61页47关系与逻辑运算符的应用表示数学公式abc 判断a,b,c三条线段能否组成一个三角形 a,b不同时为负 a+bc&a+cb&b+caa=0|b=0!(a0&b0)(a=0)|(a=0&b=0

31、&a=0)|(a=0&b=0&b=0)&b=0)ab&bc第47页/共61页48位运算符&|&|位逻辑运算符移位运算符单目单目l l位运算符的运算对象只能是位运算符的运算对象只能是整型数据整型数据或或字字符型数据符型数据,不能是实型数据,不能是实型数据l l运算对象一律按二进制补码参加运算,并运算对象一律按二进制补码参加运算,并按位进行运算按位进行运算l l位运算的结果是一个整型数据位运算的结果是一个整型数据低于单目、算术运算符,高于其他运算符低于单目、算术和关系运算符,高于其他运算符第48页/共61页49位逻辑运算符的运算规则 假设假设a ai i和和b bi i均是一个二进制位(均是一个二

32、进制位(bitbit)运算对象运算对象运算对象运算对象逻辑运算结果逻辑运算结果逻辑运算结果逻辑运算结果a ai ib bi ia ai i&b&bi ia ai i|b|bi ia ai i bbi iaai i0 00 00 00 00 01 10 01 10 01 11 11 11 10 00 01 11 10 01 11 11 11 10 00 0例如:假设a=10,b=010 求a&b、a|b、ab、a第49页/共61页50程序如下:main()int a=10,b=010;printf(%d%dn,a&b,a|b);printf(%d%dn,ab,a);输出结果:输出结果:8 108

33、 102 -112 -11 0000 0000 0000 1010 0000 0000 0000 1010&0000 0000 0000 1000&0000 0000 0000 1000 0000 0000 0000 1000 0000 0000 0000 1000即:即:a&ba&b的值是的值是8 8 0000 0000 0000 1010 0000 0000 0000 1010 1111 1111 1111 0101 1111 1111 1111 0101即:即:a a的值是的值是-1111运行jc2_b第50页/共61页51移位运算例如:ab-1 等价于 (a+8)(b-1)例如:假设a

34、=10,b=2,求ab-1 main()int a=10,b=2;printf(%d%dn,abab-1a+8b-1);输出结果:输出结果:40 940 9运行jc2_c请自行分析请自行分析运行结果运行结果第51页/共61页52条件表达式运算条件运算符:?:条件表达式的一般形式 表达式表达式1?表达式2:表达式3例如:例如:m=10&b-20?a:b x=3+a5?100:200 l lC语言中唯一的语言中唯一的三目运算符三目运算符,要正确区分用,要正确区分用?和和:分隔的表达式分隔的表达式l l涉及条件运算符的优先级与结合性涉及条件运算符的优先级与结合性第52页/共61页53条件运算符优先级

35、 条件运算符优先级高于赋值、逗号运算符,低于其他运算符条件运算符优先级高于赋值、逗号运算符,低于其他运算符 例如:m=10&b-20?a:b x=3+a5?100:200等价于:等价于:(m=10&b-20)?a:b等价于:等价于:x=(3+a5)?100:200)第53页/共61页54条件运算符的结合性 条件运算符具有条件运算符具有右结合性 当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号的冒号配对,并按这一原则正确区分各条件运算符的运算对象。,并按这一原则正确区分各条件运算符的运算对象。例如:例如

36、:wx?x+w:xy?x:y 与与 wx?x+w:(xy?x:y)等价等价 与与(wx?x+w:xy)?x:y 不等价不等价 第54页/共61页55逗号表达式运算逗号表达式的一般形式 表达式1,表达式2,表达式n 逗号表达式的值从左向右,依次对表达式求值,最后得到表表达式达式n n 的值就是逗号表达式的值例如:例如:a=5,a+,a*3 表达式表达式值为值为 18 18,且,且a=6 a=6 t=1,t+5,t+表达式表达式值为值为 1 1,且,且t=2 t=2 x=(a=3*5,a*4)赋值表达式赋值表达式的值为的值为6060,且,且x=60,a=15x=60,a=15第55页/共61页56

37、取地址运算符&为单目运算符运算对象只能是变量 运算结果是变量的存储地址 例如有定义:int a,student;char ch;可以对变量a、ch、student 进行&运算:&a&ch&student第56页/共61页57长度运算符 sizeof为单目运算符运算对象只能是变量名变量名或数据类型标识符数据类型标识符 运算结果为该变量或该数据类型的长度 main()int a=5;double x;printf(%d%d ,sizeof(intint),sizeof(a a);printf(%d%d ,sizeof(doubledouble),sizeof(x x);printf(%d%dn,s

38、izeof(floatfloat),sizeof(charchar);输出结果:2 2 2 2 8 88 8 4 4 1 1运行jc2_d第57页/共61页582.4 运算中数据类型的转换2.4.1 数据类型的自动转换转换原则:自动将精度低、表示范围小的运算对象类型向精度高、表示范围大的运算对象类型转换 char,shortchar,shortdoubledoublelonglongfloatfloatunsignedunsignedintint高精度高精度低精度低精度例如有定义:int a;char ch;表达式:a-ch*2+35La-ch*2+35.第58页/共61页592.赋值运算中的

39、类型转换 =小数部分自动补0 l l=自动舍去实型表达式的小数部分(自动舍去实型表达式的小数部分(注意不进行注意不进行四舍五入四舍五入)l l=l l=自动截取表达式值的低字节赋值,舍去高字节自动截取表达式值的低字节赋值,舍去高字节l l=l l=自动给高字节补自动给高字节补0 0 或或补补1 1第59页/共61页602.4.2 数据类型的强制转换 强制转换的一般形式 (类型名)表达式例如:例如:(int)(b+3*x)%3 1/(float)a+6l l注意:注意:(float)22/5 与 (float)(22/5)不同l l错误的类型转换:(int)b=a+5 b=int(3*a)第60页/共61页61感谢您的欣赏!第61页/共61页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁