《第2章基本数据类型精选文档.ppt》由会员分享,可在线阅读,更多相关《第2章基本数据类型精选文档.ppt(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2章基本数据章基本数据类型型本讲稿第一页,共十六页课程内容安排课程内容安排C的基本数据类型的基本数据类型 常量和变量常量和变量 整型数据类型整型数据类型 浮点型数据类型浮点型数据类型 字符型数据类型字符型数据类型 数据类型的相互转换数据类型的相互转换 本讲稿第二页,共十六页C的基本数据类型的基本数据类型 一般的说,在一般的说,在C语言中数据类型可分为:基本数据类型,语言中数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类,构造数据类型,指针类型,空类型四大类,本讲稿第三页,共十六页所所谓谓常常量量是是指指在在程程序序执执行行过过程程中中其其值值不不发发生生改改变变的的量量,
2、其其与与数数据据类类型型结结合合起起来来可可以以有有整整型型常常量量、字字符符常常量量、枚枚举举常常量量等等。等等。而而变变量量则则是是在在程程序序执执行行过过程程中中其其值值可可以以发发生生变变化化的的量量,其其同同样有多种类型。样有多种类型。常量和变量常量和变量 本讲稿第四页,共十六页常量常量常量在程序中经常直接出现,如常量在程序中经常直接出现,如123、3.14159、a、“computer”,此时只要求它们符合相应类型数据的,此时只要求它们符合相应类型数据的表示方法。一般的说,在表示方法。一般的说,在C语言程序中,常量可以直接语言程序中,常量可以直接使用,而不需要声明。但是,有一类特殊
3、的常量在使用使用,而不需要声明。但是,有一类特殊的常量在使用前需要定义,这就是符号常量。前需要定义,这就是符号常量。常量定义是指符号常量的定义,其用一个标识符来代表常量定义是指符号常量的定义,其用一个标识符来代表一个常量,通过宏定义预处理指令来实现。其定义格式一个常量,通过宏定义预处理指令来实现。其定义格式为:为:#define标识符常量标识符常量其中,由用户命名的标识符是符号常量名。其中,由用户命名的标识符是符号常量名。本讲稿第五页,共十六页变量变量变量之所以重要,是因为变量是编程语言中数据的符号标识变量之所以重要,是因为变量是编程语言中数据的符号标识和载体。和载体。由于由于C语言是比较自由
4、的高级语言,其对常量、变量和函数语言是比较自由的高级语言,其对常量、变量和函数的标识符没有非常严格的规定,但是为了提高的标识符没有非常严格的规定,但是为了提高C程序的可读程序的可读性,作者还是建议读者遵循一定的标识符命名规则性,作者还是建议读者遵循一定的标识符命名规则 比较通用的是比较通用的是Microsoft公司力推的公司力推的“匈牙利匈牙利”法,该命名法,该命名规则的主要思想是在变量和函数名中加入前缀以增进人们对规则的主要思想是在变量和函数名中加入前缀以增进人们对程序的理解。程序的理解。本讲稿第六页,共十六页整型数据类型整型数据类型 整型数据类型是整型数据类型是C语言的语言的4种基本数据类
5、型之一,其在具体种基本数据类型之一,其在具体程序中使用非常频繁。整型数据类型主要包括整型常量和程序中使用非常频繁。整型数据类型主要包括整型常量和整型变量两类整型变量两类 所谓整型常量即整型常数。在所谓整型常量即整型常数。在C语言中,使用的整型常数语言中,使用的整型常数有八进制、十六进制和十进制三种,其表示各有不同。有八进制、十六进制和十进制三种,其表示各有不同。八进制:八进制整型常数必须以八进制:八进制整型常数必须以0开头,即以开头,即以0作为八进制作为八进制数的前缀,数码取值为数的前缀,数码取值为07,一般为无符号数。,一般为无符号数。十六进制:十六进制整常数的前缀为十六进制:十六进制整常数
6、的前缀为0X或或0 x,其数码取值,其数码取值为为09,AF或或af。十进制:十进制整型常数没有前缀,其数码为十进制:十进制整型常数没有前缀,其数码为09。本讲稿第七页,共十六页整形变量整形变量 整型变量用于存储整型数据,根据其所占字节和取值范围,整型变量用于存储整型数据,根据其所占字节和取值范围,一般可以将整型变量可分为四类:基本型、短整型、长整一般可以将整型变量可分为四类:基本型、短整型、长整型和无符号型,下面将依次说明。型和无符号型,下面将依次说明。基本型:类型说明符为基本型:类型说明符为int,在内存中占,在内存中占2个字节,其取值个字节,其取值为基本整型常数,取值范围为为基本整型常数
7、,取值范围为-32768到到32767。例如,声。例如,声明一个基本型整型变量的明一个基本型整型变量的C语句为:语句为:int a;。短整型:类型说明符为短整型:类型说明符为short int或或short,所占字节和取,所占字节和取值范围均与基本型相同。例如,声明一个短整型变量的值范围均与基本型相同。例如,声明一个短整型变量的C语句为:语句为:short a;。长整型:类型说明符为长整型:类型说明符为long int或或long,在内存中占,在内存中占4个字个字节,其取值为长整型常数,取值范围为节,其取值为长整型常数,取值范围为-2147483648到到2147483647,即,即-232-
8、232-1。本讲稿第八页,共十六页浮点型数据类型也称为实型数据类型,其主要包含浮点型常量和浮点型变量两类浮点型数据类型也称为实型数据类型,其主要包含浮点型常量和浮点型变量两类。浮点型常量即实型常量,也称为实数或者浮点数。在浮点型常量即实型常量,也称为实数或者浮点数。在C语言中,实数只采用十进制。语言中,实数只采用十进制。它有二种形式:十进制数形式指数形式。它有二种形式:十进制数形式指数形式。十进制数形式由数码十进制数形式由数码0 9和小数点组成。例如:和小数点组成。例如:0.0,.25,5.789,0.13,5.0,300.,-267.8230等均为合法的浮点型常量。等均为合法的浮点型常量。而
9、指数形式则由十进制数,加阶码标志而指数形式则由十进制数,加阶码标志“e”或或“E”以及阶码(只能为整数,以及阶码(只能为整数,可以带符号)组成。简单的说,指数形式的浮点型常量值包括整数部分、尾数部可以带符号)组成。简单的说,指数形式的浮点型常量值包括整数部分、尾数部分和指数部分,其一般形式如下:分和指数部分,其一般形式如下:digits.digits E|e+|-digits其中,其中,digits是一位或多位十进制数字(从是一位或多位十进制数字(从09)。)。E(也可用(也可用e)是指数符)是指数符号。小数点之前是整数部分,小数点之后是尾数部分,它们是可省略的,小号。小数点之前是整数部分,小
10、数点之后是尾数部分,它们是可省略的,小数点在没有尾数时可省略。数点在没有尾数时可省略。浮点型数据类型浮点型数据类型 本讲稿第九页,共十六页与整型变量类似的,浮点型变量分为两类:单精度型和双精与整型变量类似的,浮点型变量分为两类:单精度型和双精度型。其中,单精度型的类型说明符为度型。其中,单精度型的类型说明符为float,双精度型,双精度型的类型说明符为的类型说明符为double,在,在TC 2.0中其所占字节数及取中其所占字节数及取值范围如下表值范围如下表2-2所示。所示。浮点型变量浮点型变量 类型说明符分配字节数取值范围float43.4E-383.4E+38double81.7E-3081
11、.7E+308本讲稿第十页,共十六页字符型数据类型主要包含字符常量、字符串常量、字符型数据类型主要包含字符常量、字符串常量、转义字符和字符变量等,其在内存中存储的并不转义字符和字符变量等,其在内存中存储的并不是字符本身,而是是字符本身,而是ASCII码,因此其可以和整形码,因此其可以和整形数据类型进行算术运算数据类型进行算术运算 字符常量是指用一对单引号括起来的一个字符。字符常量是指用一对单引号括起来的一个字符。如如 a,9,!。字符常量中的单引号只起定界。字符常量中的单引号只起定界作用并不表示字符本身。单引号中的字符不能作用并不表示字符本身。单引号中的字符不能是单引号(是单引号()和反斜杠(
12、)和反斜杠()字符型数据类型字符型数据类型 本讲稿第十一页,共十六页字符串常量字符串常量字符串常量是指用一对双引号括起来的一串字符。双引号只起字符串常量是指用一对双引号括起来的一串字符。双引号只起定界作用,双引号括起的字符串中不能是双引号(定界作用,双引号括起的字符串中不能是双引号()和反斜)和反斜杠(杠(),它们特有的表示法在转义字符中介绍。例如:),它们特有的表示法在转义字符中介绍。例如:“China”,“C program”,“33312-2341”,“A”等都是字等都是字符串常量。符串常量。与字符常量不同的是,与字符常量不同的是,C语言中字符串常量在内存中存储时,语言中字符串常量在内存
13、中存储时,系统自动在字符串的末尾加一个系统自动在字符串的末尾加一个“串结束标志串结束标志”,即,即ASCII码码值为值为0的字符的字符NULL,常用,常用0表示。因此在程序中,长度为表示。因此在程序中,长度为n个个字符的字符串常量,在内存中占有字符的字符串常量,在内存中占有n+1个字节的存储空间个字节的存储空间 本讲稿第十二页,共十六页转义字符转义字符 转义字符是转义字符是C语言中表示字符的一种特殊语言中表示字符的一种特殊形式。通常使用转义字符表示形式。通常使用转义字符表示ASCII码字码字符集中不可打印的控制字符和特定功能的符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单引号
14、(字符,如用于表示字符常量的单引号(),),用于表示字符串常量的双引号(用于表示字符串常量的双引号()和反)和反斜杠(斜杠()等。转义字符用反斜杠)等。转义字符用反斜杠后面后面跟一个字符或一个八进制或十六进制数表跟一个字符或一个八进制或十六进制数表示示 本讲稿第十三页,共十六页字符变量字符变量 与整型变量用来存放整型数据类型一样,字符变量用来存放字与整型变量用来存放整型数据类型一样,字符变量用来存放字符常量,注意只能存放一个字符,在一个字符变量中是不可符常量,注意只能存放一个字符,在一个字符变量中是不可以存放字符串的。一般来说,以存放字符串的。一般来说,C语言中字符变量的定义形式语言中字符变量
15、的定义形式如下:如下:char 字符变量标识符字符变量标识符1,字符变量标识符,字符变量标识符2,.;例如,下面语句分别定义了两个字符变量例如,下面语句分别定义了两个字符变量a和和b,并为其分别赋,并为其分别赋初值,将字符常量初值,将字符常量A和和B分别赋值给字符变量。分别赋值给字符变量。char a,b;a=A;b=B;需要读者注意的是,由于字符型数据类型和整型数据类型可以需要读者注意的是,由于字符型数据类型和整型数据类型可以相互运算,因此字符变量也可以与整型常量进行算术运算相互运算,因此字符变量也可以与整型常量进行算术运算 本讲稿第十四页,共十六页数据类型的相互转换数据类型的相互转换 一般
16、的说,数据类型转换分自动转换和强制转换两类。其中,自动一般的说,数据类型转换分自动转换和强制转换两类。其中,自动转换由转换由C编译系统自动完成,其原则是保证数据的精度不降低,所编译系统自动完成,其原则是保证数据的精度不降低,所以,数据转换按数据存储长度增长的方向进行。而强制转换是将结以,数据转换按数据存储长度增长的方向进行。而强制转换是将结果转换为用户所希望的数据类型。其转换形式为:果转换为用户所希望的数据类型。其转换形式为:(类型名)(表达式)(类型名)(表达式)其中,类型名用户所希望的目标数据类型。通过如上语句后,即可其中,类型名用户所希望的目标数据类型。通过如上语句后,即可将表达式的类型
17、转换为指定的类型名。此外,强制转换只对本次运将表达式的类型转换为指定的类型名。此外,强制转换只对本次运算有效,并不改变变量本身定义时所规定的类型。例如,语句算有效,并不改变变量本身定义时所规定的类型。例如,语句(int)1.3就将就将1.3强制转换为整型数值强制转换为整型数值1。本讲稿第十五页,共十六页小结小结本本章章主主要要介介绍绍了了C语语言言中中支支持持的的数数据据类类型型,其其中中就就3种种基基本本数数据据类类型型做做了了详详细细讲讲解解,其其分分别别是是:整整型型数数据据类类型型、浮浮点点型型数数据据类类型型和和字字符符型型数数据据类类型型。对对于于其其每每一一类类数数据据类类型型,分分别别从从常常量量和和变变量量的的角角度度予予以以阐阐述述。同同时时,为为方方便便读读者者更更好好的的理理解解这这些些数数据据类类型型在在具具体体程程序序中中的的应应用用,本本章章对对每每一一类类数数据据类类型型都都给给出出了了一一个个应应用用示示例例。本本章章最最后后就就数数据据类类型型的的相相互互转转换换做做了了概概要要叙叙述述,并并通通过过示示例例描描述述了了类类型型转转换换的的作作用和功能。用和功能。本讲稿第十六页,共十六页
限制150内