第2章 基本数据类型表达式与运算符

上传人:飞*** 文档编号:6349522 上传时间:2017-08-08 格式:PPT 页数:83 大小:476.50KB
返回 下载 相关 举报
第2章 基本数据类型表达式与运算符_第1页
第1页 / 共83页
第2章 基本数据类型表达式与运算符_第2页
第2页 / 共83页
第2章 基本数据类型表达式与运算符_第3页
第3页 / 共83页
第2章 基本数据类型表达式与运算符_第4页
第4页 / 共83页
第2章 基本数据类型表达式与运算符_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《第2章 基本数据类型表达式与运算符》由会员分享,可在线阅读,更多相关《第2章 基本数据类型表达式与运算符(83页珍藏版)》请在金锄头文库上搜索。

1、1,第二章 基本数据类型、运算符与表达式,2,本章要求:C语言的数据类型各种类型数据的定义方法常量与变量各种类型数据的混合运算强制类型变换重点:数据类型;数据的定义方法;各种类型数据的混合运算,3,2.1 C语言的数据类型,C语言支持的数据类型非常丰富,它包括:基本数据类型,构造数据类型,指针类型,空类型四大类,4,2.2 常量、变量和标识符,对于基本数据类型量,根据其取值是否可改变可分为常量和变量两种。1.常量,常量:其值不发生改变的量称为常量。常量可与数据类型结合起来分类。例如,整型常量、实型常量、字符型常量、字符串常量和符号常量。在编程过程中,常量是可以不经说明而直接引用的,而变量则必须

2、要先定义后使用。常用常量如下所示:整型常量:25、0、-7;实型常量:5.6、-6.9;字符常量:a、b。,5,2.标识符,标识符是用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:#define 标识符 常量其中#define也是一条预处理命令(预处理命令都以#开头),称为宏定义命令其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。一般习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。,6,例2.1符号常量的使用。,

3、程序运行结果: area=300程序分析: 使用符号常量参与运算,符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值。使用符号常量的好处是:含意清楚;能做到“一改全改”。,7,3.变量,变量,其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元。变量在使用之前必须进行定义即为每个变量取一个名称(变量名),同时规定它的数据类型,以便编译时根据数据类型分配存储空间。C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须是字母或者下划线。下面标识符的写法是合法的,可以作为变量名使用。Sum,Class_2,data,wang_ming,_high,

4、a8,AREA,year_month_day下面是不合法的标识符和变量名:*data1,99sum,%yuan,$BGss,MR.tom,a1b1,s/t注意,编译系统区分大小写,将它们认为是两个不同的字符。所以,max和MAX是两个不同的变量。,8,注意,建议变量名的长度最好不要超过8个字符。在选择变量名和其它标识符时应 “见名知意”。要求对所有用到的变量作强制定义,也就是“先定义,后使用” 。变量定义一般放在函数体的开头部分。要区分变量名和变量值是两个不同的概念。,9,变量名实际上就是以一个名字对应,代表一个地址。在对程序编译连接时由编译系统给每个变量名分配对应的内存地址。变量在定义时必须

5、指定其数据类型,以便在编译时为其分配存储单元。,| &a 2500H| 2501H|- 1250 - a=1250 &b2502H| 2503H|- - 2504H|- 123.67 - b=123.67 2505H|- - 2506H| 变量名、变量值、变量地址间的关系,例如: int a=1250; float b=123.67;,10,4.变量赋初值,C语言中可有多种方法为变量提供初值。可以在变量定义的同时给变量赋以初值的方法。这种方法称为初始化。在变量定义中赋初值的一般形式为:类型说明符 变量1= 值1,变量2= 值2,;例如:int a=68;/*指定a为整型变量,初值为68*/也可

6、以使被定义的变量的一部分赋初值。例如float b,c,d=7.9;上式指定b,c,d为单精度实型变量,只对d初始化,其值为7.9。如果对几个变量赋予相同的初值,应写为:int e=50,f=50,g=50;,11,例2.2部分初始化数据,程序运行结果:a=6,b=14,c=8程序分析: 对定义的整型变量进行部分初始化,然后参与运算,并输出结果。,12,5.变量的地址,在定义了一个变量后,在内存中会分配相应的存储单元,将变量的值存储到该单元中。如前所述注意区分变量名和变量值这两个不同的概念。例如:int x; float y; x=3; y=3.14159;,13,2.3简单数据类型与表示范围

7、,2.3.1 整型数据1.整型常量的表示方法整型常量就是整常数。在语言中,经常使用的整常数有三种进制,它们分别是八进制、十六进制和十进制。 八进制前缀为“0”,十六进制前缀为“0x”,十进制无前缀。 (1)十进制整数。 如:123, -456.4。(2)八进制整数。以0头的数是八进制数。 如:0123表示八进制数123,等于十进制数83,-011表示八进制数-11,即十进制数-9。,14,(3)十六进制整数。以0x开头的数是16进制数。 如:0x123,代表16进制数123,等于十进制数 291。 -0x12等于十进制数18。 (4)整型常数的后缀: 基本整型的长度为16位,十进制无符号整常数

8、的范围为065535,有符号数为-32768+32767。 八进制无符号数的表示范围为00177777。 十六进制无符号数的表示范围为0X00XFFFF或0x00xffff。 如果使用的数超过了上述范围,就必须加上后缀“L”或“l”变为长整型数来表示。 例如:567L (十进制为567)注意:长整数567L和基本整常数567在数值上并无区别,但是所占存储空间大小不同。对567L而言,因为是长整型量,编译系统将为它分配4个字节存储空间。而对567,因是基本整型,则只分配2个字节的存储空间。,15,2.整型变量,(1) 整型数据在内存中的存放形式数据在计算机内存中是以二进制形式存放的,例如,定义了

9、一个整型变量a:int a;/*定义a为整型变量*/a=11;/*给a附以初值11*/由于在内存中数值是以补码表示的,正整数的补码和它的原码在二进制形式上是相同的。所以,a11,在内存中的存放形式如下所示。,16,负数的补码:将该数的绝对值的二进制形式按位取反后再加1。例如:求-11的补码:,符号位,(2)整型的分类,基本型:类型说明符为int,在内存中占2个字节。短整量:类型说明符为short int或short。所占字节和取值范围均与基本型相同。长整型:类型说明符为long int或long,在内存中占4个字节。,17,有符号型:类型说明符为signed;无符号型:类型说明符为unsign

10、ed。有符号型与无符号型又可与前三种类型匹配而构成:,上面带 的部分表示其内容可以省略,18,(3)整型变量的定义,变量定义的格式为: 类型说明符 变量名标识符,变量名标识符,.;说明:允许在一个类型说明符后,定义多个相同类型的变 量,并使用逗号分割变量名中多个变量,使用分号结 束。类型说明符与变量名之间至少用一个空格间隔。变量定义必须放在变量使用之前。一般放在函数体的开头部分。在程序的同一部分,禁止对同一变量进行重复定义,在书写不同种类型变量定义时,避免都写在一行上。对所用到的变量必须进行强制定义,即“先定义,后使用”。int a,b,c; /*a,b,c为整型变量*/long x,y; /

11、*x,y为长整型变量*/,19,例2.3整型变量的定义与使用,程序运行结果:b=x+a=-1,sum=12,average=6,20,(4)整型数据的溢出,每个整型数据都有其自身的数据类型,有其自身所占存储空间大小,基本整型int定义的变量的最大允许存储值为32767,例3.4整型数据的溢出,程序运行结果:32767,-32768,程序分析: 计算结果-32768与实际应该的结果32768相差一个符号,为什么呢?数据在内存中都是以该数的补码的二进制形式存放的,32767的补码为0111 1111 1111 1111,加1后发生进位,变成1000 0000 0000 0000,最高位的1占据了符

12、号位,而它正好是-32768的补码形式,所以才有上述输出结果。,21,2.3.2实型数据,1实型数据表示方法 实型也称为浮点型。语言中,实数有二种形式:十进制小数形式和指数形式。十进制数形式:由数字09和小数点组成。注意,必须有小数点,且小数点的前面或后面必须有数字。 例如:3.1415926,0.0、0.1、7.0、780.、-25.860等均为合法的实数。指数形式:由十进制数(基数)、加阶码标志“e”或“E”以及指数(阶码,只能为整数,可以带符号)组成。 其一般形式为: a E n(a为十进制数基数,n为十进制整数阶码) 其值为 a*10n。 如:1.6E2 (等于1.6*102) 注意:

13、阶码标志e(或E)之前必须有数字,且e后的指数必须为整数。,22,2.实型数据在内存中的存放形式,实型数据一般占4个字节(32位)内存空间。与整型数据的存储方式不同,系统把一个实型数据分为小数部分和指数部分分别存放。指数部分采用规范化的指数形式表示。例如,实数7.15731在内存中的存放形式如下:,图中是用十进制形式来表示的,实际上计算机中是用二进制来表示小数部分,以及用2的幂次来表示指数部分的。, .715731(101)0.715731,23,3.实型变量的分类,实型变量分为:单精度(float型)、双精度(double型)和长双精度(long double型)三类。,实型变量定义,例如:

14、float x,y; /*x,y为单精度实型量*/double a,b,c; /*a,b,c为双精度实型量*/long double z; /* z为长双精度实型量*/,24,4.实型数据的舍入误差,由于实型变量的存储单元能提供的有效数字总是有限的,其中单精度的有效数字是7为,双精度的是16位。在有效位数之外的数字将被舍去,因此会产生误差。,例2.5 实型数据的舍入误差。,程序运行结果: 7654321152.000000, 7654321152.000000,“f”是输出实数的制定格式。结果中xy,单精度的x较33大的多,其有效位数是7位,超过此范围的数字是无意义的。Turbo C 规定小数

15、后最多保留六位。应避免这种被“忽视”的情况发生。,25,5.实型常数的类型,实型常数不分单、双精度,都按双精度double型处理。例如定义一个实型变量a,进行如下运算:a3.14159*7.1617编译系统先将3.14159和7.1617作为双精度数进行相乘的运算,得到的结果也是双精度的,然后取其前7位有效数字赋值给实型变量a。这样,可以使计算的结果更加精确。,26,2.3.3 字符型数据和字符串常量,字符型数据包括字符常量和字符变量。1.字符常量字符常量是用一对单引号括起来的一个字符。例如:x、d、=、!等都是合法字符常量。注意:d和D是两个不同的字符常量。注意:字符常量只能是单个字符,不能是字符串。字符可以是字符集中除了单引号本身“”、双引号“”、反斜杠“”外的任意字符。但数字被定义为字符型之后就不能参与数值运算。如6和6 是不同的。6是字符常量,不能参与运算。,

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

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号