第3章 数据类型运算符和表达式优秀PPT.ppt
《第3章 数据类型运算符和表达式优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第3章 数据类型运算符和表达式优秀PPT.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 数据类型运算符和表达式现在学习的是第1页,共50页 整型整型 基本类型基本类型 字符型字符型 单精度型单精度型 实型(浮点型)实型(浮点型)空类型空类型 双精度型双精度型数据类型数据类型 数组类型数组类型 结构体类型结构体类型 构造类型构造类型 共用体类型共用体类型 枚举类型枚举类型 指针类型指针类型 我们可以把基本数据类型按照一定的规则构造成复杂的数据类型,如基本类型的数组,含有各种类型的结构和联合,也是可以构造成指向各种数据的类型的指针。还可以构造成程序设计设计中需要用到的表、树、栈等数据结构。现在学习的是第2页,共50页3.2 常量与变量常量与变量3.2.1 常量和符号常量常量和
2、符号常量 一个量有计算机运行过程中其值不能改变的称为常量,一个量有计算机运行过程中其值不能改变的称为常量,根据常量的类型有整型常量、实型常量、字符常量等。根据常量的类型有整型常量、实型常量、字符常量等。例:例:3 3.1415926 c例:例:#define PI 3.1415926#define n 100使用符号常量的优点:使用符号常量的优点:(1)含义清楚含义清楚(2)修改方便修改方便现在学习的是第3页,共50页3.2.2 变量变量 相对于常量来说变量在计算机运行时是可以改变的,相对于常量来说变量在计算机运行时是可以改变的,C语言的变量与常量一样有整型变量、实型变量、字符变量等。语言的变
3、量与常量一样有整型变量、实型变量、字符变量等。由于变量的值在运行其间可以改变因此需为变量在内存中开由于变量的值在运行其间可以改变因此需为变量在内存中开辟一块存储空间存放变量的值以便变量的存取。其存储空间辟一块存储空间存放变量的值以便变量的存取。其存储空间在内存中也有相应的地址,但如果用变量的地址作为存取数在内存中也有相应的地址,但如果用变量的地址作为存取数据的依据那么存取变量时会很不方便,也不太直观。据的依据那么存取变量时会很不方便,也不太直观。C语言语言和其它高级语言一样是用标识符来表示变量。和其它高级语言一样是用标识符来表示变量。C语言的标识符规定:语言的标识符规定:是以字母或下划线开头由
4、数字、字母和下划线组成的与保留字是以字母或下划线开头由数字、字母和下划线组成的与保留字不同的符号串。不同的符号串。现在学习的是第4页,共50页例:例:ma pi price student02 a3214 _s例:例:1ma t3.1 int double 标识允许的最大长度各版本不同,如标识允许的最大长度各版本不同,如Turbo C规定长度为规定长度为32个,即前个,即前32个有效。个有效。变量也有类型变量也有类型,变量的类型既决定了该变量的取值范围,也变量的类型既决定了该变量的取值范围,也决定了在该变量上所能执行的运算,所以决定了在该变量上所能执行的运算,所以C语言规定所有变量必语言规定所
5、有变量必需在使用前加以说明需在使用前加以说明“先定义,后使用先定义,后使用”C语言中变量说明形式:语言中变量说明形式:类型名类型名 变量名,变量名,变量名,变量名,变量名;变量名;例:例:int lower,upper,step;例:例:float x,y;例:例:char c,a100;现在学习的是第5页,共50页使用变量与标识符应注意:使用变量与标识符应注意:1.在程序的同一作用域中,一个标识符只能说明一次。在程序的同一作用域中,一个标识符只能说明一次。2.C语言的标识符是区分大小写的语言的标识符是区分大小写的,即大小写字母为不同的符号。即大小写字母为不同的符号。3.标识符虽然不能与保留字
6、相同但可以与标准标识相同,当标标识符虽然不能与保留字相同但可以与标准标识相同,当标准标识符重新定义后,会失去原来的含义。准标识符重新定义后,会失去原来的含义。4.虽然用标识符标识变量,但标识符与变量的意义不同虽然用标识符标识变量,但标识符与变量的意义不同:(1)标识符是描述变量名的一种手段。标识符是描述变量名的一种手段。(2)一个标识符可以标识多个变量,一个变量也可以有多个变量一个标识符可以标识多个变量,一个变量也可以有多个变量标识。标识。5.C语言中的变量与数学中的变量的意义不同:语言中的变量与数学中的变量的意义不同:(1)C语言中的变量瞬时只有一个值,而数学中的变量没有一语言中的变量瞬时只
7、有一个值,而数学中的变量没有一定值。定值。(2)C语言中的变量的值是离散的,而数学中的变量是连续的。在语言中的变量的值是离散的,而数学中的变量是连续的。在C语言中可以有语言中可以有x=x+1,而数学中不能有而数学中不能有x=x+1。现在学习的是第6页,共50页例:例:int i;float i;例:例:char sin;例:例:int i;float i;例:例:int Ma;float ma;现在学习的是第7页,共50页3.3 整型数据整型数据 3.3.1 整型常量整型常量 虽然人们常用的是十进制数但计算机内都是二进制数的形式,虽然人们常用的是十进制数但计算机内都是二进制数的形式,八进制和十
8、六进制是可以来表示二进制数的,因此在八进制和十六进制是可以来表示二进制数的,因此在C语言中还语言中还可以使用八进制和十六进制。可以使用八进制和十六进制。(1)十进制整数十进制整数 由正负号和由正负号和0-9十个数符组成的,逢十进一,借十个数符组成的,逢十进一,借一当十。一当十。C语言的十进制整数与普通格式相同,如:语言的十进制整数与普通格式相同,如:123 -49 7(2)八进制整数八进制整数 由正负号和由正负号和0-7八个数符组成的,逢八进一,八个数符组成的,逢八进一,借一当八。借一当八。C语言的八进制整数是以语言的八进制整数是以0开头(开头(0在正负号后)的数,在正负号后)的数,如:如:0
9、123-012。但。但080不是八进制数不是八进制数(3)十六进制整数十六进制整数 由正负号和由正负号和0-9、a-f十六个数符组成的,逢十六个数符组成的,逢十六进一,借一当十六。十六进一,借一当十六。(0 x在正负号后在正负号后,表示十六进制数表示十六进制数)0 x123-0 xa都是十六进制数都是十六进制数现在学习的是第8页,共50页3.3.2 整型变量整型变量1.整型数据在内存中的存放形式整型数据在内存中的存放形式 无论是十进制、八进制还是十六进制数在计算机内部都是无论是十进制、八进制还是十六进制数在计算机内部都是有二进制形式存放的,它的存放形式关系到数的内部转换问题,有二进制形式存放的
10、,它的存放形式关系到数的内部转换问题,因此要对数的内部形式有所了解。因此要对数的内部形式有所了解。一个整数在计算机内的长度不是一定的,如一个整数在计算机内的长度不是一定的,如turbo C是二个是二个字节,而字节,而VC+是四个字节,现以二个字节为例。正数的最高位表是四个字节,现以二个字节为例。正数的最高位表示正负号,用表示正,表示负。其余示正负号,用表示正,表示负。其余15位表示数,如:位表示数,如:int i=10;其内部形式为:其内部形式为:现在学习的是第9页,共50页 但负数怎样在计算机中表示是需要考虑的问题,一般微型机但负数怎样在计算机中表示是需要考虑的问题,一般微型机中以所谓补码形
11、式的存放,补码的正数形式与原码相同,而负中以所谓补码形式的存放,补码的正数形式与原码相同,而负数的补码是该数的绝对值求补,求补的方法是求反加或者是数的补码是该数的绝对值求补,求补的方法是求反加或者是最后一个前面求反。最后一个前面求反。例:例:int i=-10;i的内部形式是:的内部形式是:现在学习的是第10页,共50页 使用补码形式表示的优点是:不管正负数,只要结果在表使用补码形式表示的优点是:不管正负数,只要结果在表示范围内直接相加即可。如:(示范围内直接相加即可。如:(-35)+48=13 11111111 11011101 +)00000000 00110000 00000000 00
12、001101如:(如:(-63)+37=26 11111111 11000001 +)00000000 00100101 11111111 11100110现在学习的是第11页,共50页2.整型变量的分类整型变量的分类 整形变量可以分为:基本型、短整型、长整型三类,而每一整形变量可以分为:基本型、短整型、长整型三类,而每一类又可以加无符号(类又可以加无符号(unsigned)修饰)修饰(一般不用有符号一般不用有符号signed).(1)基本型基本型 用用int表示表示(2)短整型短整型 用用short int 或或short表示表示(3)长整型长整型 用用long int 或或long表示表示
13、加上无符号修饰又有:加上无符号修饰又有:(4)无符号基本型无符号基本型 用用unsigned int表示表示(5)无符号短整型无符号短整型 用用unsigned short int 或或unsigned short表示表示(6)无符号长整型无符号长整型 用用unsigned long int 或或unsigned long表示表示现在学习的是第12页,共50页 值得指出的是对于各类型的数据的字节数值得指出的是对于各类型的数据的字节数C语言没有统一语言没有统一的标准,各版本有所不同,如的标准,各版本有所不同,如Turbo C中的中的short和和int都是都是16位,位,即二个字节,而即二个字节
14、,而long是是32位的。位的。下面介绍下面介绍Turbo C的类型长度和取值范围。的类型长度和取值范围。类型大小取值范围unsigned short16065535short16-3276832767unsigned int16065535int16-3276832767unsigned long3204294967295long32-21474836482147483647现在学习的是第13页,共50页3.整型变量的定义整型变量的定义整型变量的定义与其它变的定义形式一样。整型变量的定义与其它变的定义形式一样。例:例:int a,b,c;unsigned int d,e long p,q4.
15、整型数据的溢出整型数据的溢出 当当C语言的整数超出其表示范围时称为溢出,如在语言的整数超出其表示范围时称为溢出,如在Turbo C中中的整型数超过其表示范围的整型数超过其表示范围-3276832767时称为溢出。时称为溢出。例:例:#include main()int a=-26532,b=-13456;Printf(“%d”,a+b);其运行结果为:其运行结果为:25728现在学习的是第14页,共50页 那么二个负数为什么会加出来一个正数呢?这是因为那么二个负数为什么会加出来一个正数呢?这是因为-26352和和-13456的内部表示分别为:的内部表示分别为:1001100100010000和
16、和1100101101110000其和为其和为0110010010000000,即,即25728。因此需。因此需要程序设计者注意在运算过程中不要超过其表示范围。要程序设计者注意在运算过程中不要超过其表示范围。现在学习的是第15页,共50页3.3.3 整型常量的类型整型常量的类型 一个整型常量是否有类型?回答是有类型的。那么如何确定一个整型常量是否有类型?回答是有类型的。那么如何确定其类型呢?其规则如下:其类型呢?其规则如下:(1)如其值在如其值在-3276832767默认为默认为int型,如超过型,如超过int的表示范围的表示范围而在而在-21474836482147483647则默认为则默认
17、为long型。型。(2)Turbo C中的中的short和和int型都是型都是16位的,称其类型是等价的,位的,称其类型是等价的,它们是可以相互赋值的,其常量也是等价的。它们是可以相互赋值的,其常量也是等价的。(3)一个数后面加一个数后面加U或或u表示无符号常量表示无符号常量(4)一个数后面加一个数后面加L或或l表示长整型常量,如表示长整型常量,如20L在在Turbo C也是存也是存入四个字节。入四个字节。现在学习的是第16页,共50页3.4 浮点型数据浮点型数据 浮点型数据又称实型数,它也是计算机中常用数据形式。浮点型数据又称实型数,它也是计算机中常用数据形式。3.4.1 浮点型常量的表示方
18、法浮点型常量的表示方法(1)普通形式普通形式 C语言的小数普通形式与普通表示的十进制数基本相同,语言的小数普通形式与普通表示的十进制数基本相同,但它允许以小数点开始或以小数点结束的小数形式。但它允许以小数点开始或以小数点结束的小数形式。例:例:345.3.1415926 0.0 1.1564(2)指数形式指数形式C语言的指数形式是由尾数语言的指数形式是由尾数e或或E和阶码组成的。和阶码组成的。例:例:2.1e05 .123E2 4096e-5因此因此C语言实型数是由整数部分(十进制串)、小数点(小数语言实型数是由整数部分(十进制串)、小数点(小数部分标志)、小数部分(十进制串)、部分标志)、小
19、数部分(十进制串)、e或或E(阶码标志)、(阶码标志)、整数阶码(可带正负号)组成的,其中整数部分和小数部整数阶码(可带正负号)组成的,其中整数部分和小数部分是可以省略的,但不能同时省略;小数点和分是可以省略的,但不能同时省略;小数点和e或或E也不能也不能同时省略。同时省略。现在学习的是第17页,共50页例:例:345 e5 .-12 123.-e3 3.0e 2e1.0 都不是合法的都不是合法的C语言语言实数。实数。使用实数时应注意:使用实数时应注意:实数的输入形式可以是满足实数的任何形式,而在以指数实数的输入形式可以是满足实数的任何形式,而在以指数形式输出时以规范化形式输出,即小数点前面保
20、留一位。如形式输出时以规范化形式输出,即小数点前面保留一位。如:31415926e-2 0.031415926e+3和和0.31415926e2均输出均输出3.1415926e+01现在学习的是第18页,共50页3.4.2 浮点型变量浮点型变量1.浮点型数据在内存中的存放形式浮点型数据在内存中的存放形式 一个单精度实型数在一个单精度实型数在C语言中一般存放成四个字节,其中一个语言中一般存放成四个字节,其中一个字节存放尾数,另三个字节存放阶码,如图:字节存放尾数,另三个字节存放阶码,如图:其表示的值为:(其表示的值为:(1+2-2+2-11)X 210=1024+256+0.5=1280.5内部
21、存放的数大多数是规格化的,即尾数的第一位为内部存放的数大多数是规格化的,即尾数的第一位为1。现在学习的是第19页,共50页2.浮点型变量的分类浮点型变量的分类 C语言中的型变量分为单精度和双精度型二类,即语言中的型变量分为单精度和双精度型二类,即float和和double二种形式,有的二种形式,有的C语言系统还提供长双精度(语言系统还提供长双精度(long double)型。型。一个四字节的数表示的绝对值最大的数是一个四字节的数表示的绝对值最大的数是 (1-2-22)X 2127,绝对值最小的数是,绝对值最小的数是1 X 2-128,即即3.4X10-38和和3.4X1038C的实型数据长度和
22、取值范围:的实型数据长度和取值范围:类型大小|x|的取值范围float323.4X10-383.4X1038double641.7X10-3081.7X10308long double1281.2X10-49321.2X104932现在学习的是第20页,共50页Turbo C的实型数据长度和取值范围:的实型数据长度和取值范围:类型大小|x|的取值范围float323.4X10-383.4X1038double641.7X10-3081.7X10308long double641.7X10-3081.7X103083.实型数据的舍入误差实型数据的舍入误差 由于实型数存放在内存中是以一定的长度表示
23、的,一些十由于实型数存放在内存中是以一定的长度表示的,一些十进制实数转换成二进制实数时会有一些误差,如输入进制实数转换成二进制实数时会有一些误差,如输入0.3后,输后,输出其值不一定是出其值不一定是0.3。x/3*3也不一定等于也不一定等于x,另外二个阶码相差较大的数另外二个阶码相差较大的数进行加减时需对阶,即把阶码小的转换成阶码大的值,这样有可能移出进行加减时需对阶,即把阶码小的转换成阶码大的值,这样有可能移出一定的位数影响其精度,造成一定的误差。一定的位数影响其精度,造成一定的误差。现在学习的是第21页,共50页3.5 字符型数据字符型数据 3.5.1 字符常量字符常量 C的字符变量是用单
24、引号括起的一个字符,如的字符变量是用单引号括起的一个字符,如C,x。C语言的字符是以语言的字符是以ASCII码存放的(见附录),在码存放的(见附录),在ASCII码表中除码表中除了可见字符外还有许多控制字符,了可见字符外还有许多控制字符,C语言也提供了控制字符的语言也提供了控制字符的常量。这些特殊字符称为转义字符。它是由反斜线常量。这些特殊字符称为转义字符。它是由反斜线和一个字和一个字符组成的,它表示一个字符。符组成的,它表示一个字符。3.4.3 浮点型常量的类型浮点型常量的类型 C语言中一般将浮点常量看作是双精度来处理的语言中一般将浮点常量看作是双精度来处理的,即浮点数即浮点数2.0也也是用
25、四个字节表示的。这样可以提高计算的精度,但增加了是用四个字节表示的。这样可以提高计算的精度,但增加了存储量和计算时间,如要将常量表示单精度数可在数的后面存储量和计算时间,如要将常量表示单精度数可在数的后面加字母加字母f或或F。现在学习的是第22页,共50页常用转义字符表:常用转义字符表:字符形式功能ASCII码值n换行10t横向跳格(一个Tab)9b退格8r回车13f换页12单个符号92单个符号39”单个符号“34ddd13位八进制数代表的符号0255xhh12位十六进制数代表的符号0255现在学习的是第23页,共50页使用转义字符应注意:使用转义字符应注意:若反斜线(若反斜线()之后不是转义
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 数据类型运算符和表达式优秀PPT 数据类型 运算 表达式 优秀 PPT
限制150内