第03章数据类型与运算.ppt
《第03章数据类型与运算.ppt》由会员分享,可在线阅读,更多相关《第03章数据类型与运算.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第第3 3章章 数据类型、运算符与表达式数据类型、运算符与表达式3.1 C3.1 C语言的数据类型语言的数据类型3.2 3.2 常量和变量常量和变量3.3 3.3 整型数据整型数据3.4 3.4 实型数据实型数据3.5 3.5 字符型数据字符型数据3.6 3.6 变量赋初值与数据混合运算变量赋初值与数据混合运算 3.7 3.7 算术运算与算术表达式算术运算与算术表达式3.8 3.8 赋值运算与赋值表达式赋值运算与赋值表达式3.9 3.9 C C语言特有的运算和运算符语言特有的运算和运算符程序设计概述程序设计概述一个程序应包括对数据的描述和对数据处理的一个程序应包括对数据的描述和对数据处理的描
2、述。描述。1 1对数据的描述对数据的描述,即数据结构。数据结构是计即数据结构。数据结构是计算机学科的核心课程之一,有许多专门著作论述。算机学科的核心课程之一,有许多专门著作论述。在在C C语言中,系统提供的数据结构,是以数据类语言中,系统提供的数据结构,是以数据类型的形式出现的。型的形式出现的。程序设计概述程序设计概述 2 2对数据处理的描述对数据处理的描述,即计算机算法。,即计算机算法。算法是为解决一个问题而采取的方法和步骤,算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。为此,著名计算机科学家沃是程序的灵魂。为此,著名计算机科学家沃思提出一个公式:思提出一个公式:数据结构数据结构 +
3、算法算法 =程序程序 实际上,一个程序除了数据结构和算实际上,一个程序除了数据结构和算法外,还必须使用一种计算机语言。法外,还必须使用一种计算机语言。3.1 C3.1 C语言的数据类型语言的数据类型C C语语言言提提供供的的数数据据结结构构,是是以以数数据据类类型型形形式式出出现现的的。具具体体分类如下:分类如下:1.1.基本类型基本类型分为整型、实型分为整型、实型(又称浮点型)、(又称浮点型)、字符型和枚举型四种。字符型和枚举型四种。2.2.构造类型构造类型分为数组类型、结构类型和共用类型三种。分为数组类型、结构类型和共用类型三种。3.3.指针类型指针类型。在第。在第9 9章中介绍。章中介绍
4、。4.4.空类型空类型3.1 C3.1 C语言的数据类型语言的数据类型 C C语语言言中中的的数数据据,有有常常量量和和变变量量之之分,它们分别属于上述这些类型。分,它们分别属于上述这些类型。本本章章将将介介绍绍基基本本类类型型中中的的整整型型、实实型和字符型三种数据。型和字符型三种数据。3.2 3.2 常量和变量常量和变量3.2.1 3.2.1 常量常量1.1.常量的概念常量的概念 在程序运行过程中,其值不能被改变的量称为常量。在程序运行过程中,其值不能被改变的量称为常量。2.2.常量的分类常量的分类 (1 1)整型常量整型常量 如如 1 1、3 3、0 0、-1-1、-2-2(2 2)实型
5、常量实型常量 如如 1.11.1、3.83.8、0.20.2、-10.2-10.2、-2.7-2.7(3 3)字符常量字符常量 如如 a,b,A,Fa,b,A,F(必须有(必须有 )(4 4)符号常量符号常量 程序例子求圆的面积。程序例子求圆的面积。#define PI 3.14#define PI 3.14 中中PIPI 为符号常量。为符号常量。符号常量将在第九章详细介绍符号常量将在第九章详细介绍。3.2 3.2 常量和变量常量和变量3.2.2 3.2.2 变量变量1.1.变量的概念变量的概念 在在程程序序运运行行过过程程中中,其其值值可可以以被被改改变变的的量量称称为为变变量量。它它代代表
6、表内内存存中中具具有有特特定定属属性性的的内内存存单单元元,用用来来存存储储数数据据,如如同同教教室室里一个位置,可以坐不同的同学。里一个位置,可以坐不同的同学。3.2 3.2 常量和变量常量和变量2.2.变量的两个要素变量的两个要素(变量名与变量值)(变量名与变量值)(1 1)变变量量名名。每每个个变变量量都都必必须须有有一一个个名名字字变量名,变量命名遵循标识符命名规则。变量名,变量命名遵循标识符命名规则。(2 2)变变量量值值。在在程程序序运运行行过过程程中中,变变量量值值存存储储在内存中。在程序中,通过变量名来引用变量的值。在内存中。在程序中,通过变量名来引用变量的值。3a变量名变量名
7、变量名变量名变量值变量值变量值变量值存储单元存储单元存储单元存储单元变量名(椅子)变量名(椅子)变量名(椅子)变量名(椅子)(一排(一排(一排(一排7 7号)号)号)号)变量值(同学)变量值(同学)变量值(同学)变量值(同学)(张三)(张三)(张三)(张三).标识符命名规则标识符命名规则(1 1)有有效效字字符符:只只能能由由字字母母、数数字字和和下下划划线线组组成,且以字母或下划线开头。成,且以字母或下划线开头。(2 2)有有效效长长度度:随随系系统统而而异异,但但至至少少前前个个字字符有效。如果超长,则超长部分被舍弃。符有效。如果超长,则超长部分被舍弃。例例如如,由由于于student_n
8、amestudent_name和和student_numberstudent_number的的前前个个字字符符相相同同,有有的的系系统统认认为为这这两两个个变变量量,是是一一回事而不加区别。回事而不加区别。在在TC TC V2.0V2.0中中,变变量量名名(标标识识符符)的的有有效效长长度度为为个字符,缺省值为。个字符,缺省值为。(3 3)C C语言的关键字不能用作变量名。语言的关键字不能用作变量名。注注意意:C C语语言言对对英英文文字字母母的的大大小小敏敏感感,即即同同一一字字母母的的大大小小写写,被被认认为为是是两两个个不不同同的的字字符。符。习习惯惯上上,变变量量名名和和函函数数名名中
9、中的的英英文文字字母母用小写,以增加可读性。用小写,以增加可读性。标识符命名的良好习惯标识符命名的良好习惯见名知意见名知意:所所谓谓“见见名名知知意意”是是指指,通通过过变变量量名名就就知知道道变变量量值值的的含含义义。通通常常应应选选择择能能表表示示数数据据含含义义的的英英文文单单词词(或或缩缩写写)作作变变量量名名,或或汉汉语语拼音字头作变量名。拼音字头作变量名。例例如如,name/name/xmxm(姓姓名名)、sex/sex/xbxb(性性别别)、age/age/nlnl(年龄)、年龄)、salary/salary/gzgz(工资)。工资)。4.4.变量的定义与初始化变量的定义与初始化
10、在在语语言言中中,要要求求对对所所有有用用到到的的变变量量,必必须须先先定定义义、后后使使用用;每每个个变变量量只只能能定定义义一一次次且且又又确确定定类类型型。我我们们称称在在定定义义变变量的同时进行赋初值的操作为变量初始化。量的同时进行赋初值的操作为变量初始化。(1 1)变量定义的一般格式变量定义的一般格式 存储类型存储类型 数据类型数据类型 变量名变量名,变量名变量名2;2;例如,例如,float radius,length,area;float radius,length,area;(2 2)变量初始化的一般格式变量初始化的一般格式 存存储储类类型型 数数据据类类型型 变变量量名名=初
11、初值值,变变量量名名2=2=初初值值2;2;例如,例如,float radius=2.5,length,area;float radius=2.5,length,area;3.3 3.3 整型数据整型数据3.3.1 3.3.1 整型变量整型变量 1.1.分类分类 根据占用内存字节数的不同,整型变量又分为类:根据占用内存字节数的不同,整型变量又分为类:(1 1)基本整型(类型关键字为)基本整型(类型关键字为intint)。)。(2 2)短整型(类型关键字为短整型(类型关键字为short short intint)。)。(3 3)长整型(类型关键字为长整型(类型关键字为long long inti
12、nt)。)。(4 4)无符号整型。无符号型又分为无符号基本整型无符号整型。无符号型又分为无符号基本整型(unsigned unsigned intint)、)、无符号短整型(无符号短整型(unsigned shortunsigned short)和无符号长整型(和无符号长整型(unsigned longunsigned long)三种,只能用来存储无三种,只能用来存储无符号整数。符号整数。3.3 3.3 整型数据整型数据2.2.占用内存字节数与值域占用内存字节数与值域 上述各类型整型变量占用的内存字节数,随系统而异。在上述各类型整型变量占用的内存字节数,随系统而异。在1616位操作系统中,一般
13、用字节表示一个位操作系统中,一般用字节表示一个intint型变量,且型变量,且longlong型(字节)型(字节)intint型(字节)型(字节)shortshort型(字节)。型(字节)。显然,不同类型的整型变量,其值域不同。占用内存字显然,不同类型的整型变量,其值域不同。占用内存字节数为节数为n n的(有符号)整型变量,其值域为:的(有符号)整型变量,其值域为:-2-2n*8-1n*8-1(2 2n*8-n*8-1 1-1-1);无符号整型变量的值域为:);无符号整型变量的值域为:00(2 2n*8n*8-1-1)。)。例如,例如,PCPC机中的一个机中的一个intint型变量,其值域为型
14、变量,其值域为-2-22*8-12*8-1(2 22*8-12*8-1-1 1),即),即-3276832767-3276832767;一个;一个unsignedunsigned型变量的值域为:型变量的值域为:00(2 22*82*8-1-1),即),即065535065535。3.3.整型变量的定义。整型变量的定义。同其它变量一样,整型变同其它变量一样,整型变量必须量必须“先定义,后使用先定义,后使用”。且定义一般放在程序且定义一般放在程序的开头。的开头。程序举例(定义整型变量、计算求和并输程序举例(定义整型变量、计算求和并输出计算结果)。出计算结果)。说明不同整型数据间可以进行运算。说明不
15、同整型数据间可以进行运算。4.4.整型数据的溢出。整型数据的溢出。每一变量都有其存储范围,每一变量都有其存储范围,当数据大于或小于其存储范围是就会发生数据溢出。当数据大于或小于其存储范围是就会发生数据溢出。就如同一个座位是不能坐下一个重就如同一个座位是不能坐下一个重200200公斤的相扑的。公斤的相扑的。程序举例。程序举例。说明整型数据溢出时会出现的问题。说明整型数据溢出时会出现的问题。3.3.2 整形数据在内存的存放形式整形数据在内存的存放形式 数据在内存中是以二进制格式存放。数据在内存中以其补码形式存放,正数的补码是数据在内存中是以二进制格式存放。数据在内存中以其补码形式存放,正数的补码是
16、其本身,而负数的补码是其绝对值的二进制取反后加其本身,而负数的补码是其绝对值的二进制取反后加1。以。以10 和和 -10 为例说明。为例说明。0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0在存放整数的存储单元中,最左端的一位表示符号,该位为在存放整数的存储单元中,最左端的一位表示符号,该位为在存放整数的存储单元中,最左端的一位表示符号,该位为在存放整数的存储单元中,最左端的一位表示符号,该位为0 0表示数值为正值,表示数值为正值,表示数值为正值,表示数值为正值,该位为该位为该位为该位为1 1表示数值为负值。表示数值为负值。表示数值为负值。表示数值为负值。10的原码的原码10原码
17、取反原码取反10原码取反原码取反加加1得得-10的补的补码码1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 11 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0举例说明十进制数据与二进制数据的转化。(以举例说明十进制数据与二进制数据的转化。(以举例说明十进制数据与二进制数据的转化。(以举例说明十进制数据与二进制数据的转化。(以1010为例)为例)为例)为例)1025022210110的二进制表示为1010反之,二进制1010的值为1X23+0X22+1X21+0X20=103.3.3 有符号整型变量与无符号整型变量存储有符号整型变量与无符号整型变量存储在无符号整型变量在
18、内存中存放时,最左端的位不再表示符号位,在无符号整型变量在内存中存放时,最左端的位不再表示符号位,而表示数值。而表示数值。0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1有符号整有符号整型最大值型最大值1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1=215-1=32767有符号整有符号整型最大值型最大值=216-1=65535代表符号代表符号代表数值代表数值长整型数据的存储空间一般大于整型,通常为长整型数据的存储空间一般大于整型,通常为32位,其数据存放规则与整位,其数据存放规则与整型数据相似,只是存放数值更大。型数据相似,只是存放数值更大。有符号长整有符号长整型
19、最大值型最大值01 11111111111111111111111111111111111111111111111111111111111111无符号长整无符号长整型最大值型最大值=231-1=232-13.3.4 3.3.4 整型常量整型常量.三种表示形式三种表示形式整型常量即整常数,在语言中可用三种形式表示:整型常量即整常数,在语言中可用三种形式表示:(1 1)十进制十进制。例如。例如1010、3636。(2 2)八进制八进制(以数字开头)。例如(以数字开头)。例如012012 012=1X8 012=1X8(1)(1)+2X8+2X8(0)(0)=10=10(3 3)十六进制十六进制(以
20、数字(以数字+小写字母小写字母x x开头)。例如开头)。例如0 x120 x12。0 x12=1X160 x12=1X16(1)(1)+2X16+2X16(0)(0)=18=18说明十进制数据向八进制和十六进制转化的方法:说明十进制数据向八进制和十六进制转化的方法:1717转化到八进制为转化到八进制为2121;1717转化到十六进制为转化到十六进制为1111;(说明转化方法);(说明转化方法)3.3 3.3 整型数据整型数据.分类分类(1 1)基基本本整整型型。在在1616位位机机中中,用用2 2字字节节存存储储,其数据范围与其数据范围与intint型变量一样。型变量一样。(2 2)长长整整型
21、型(在在数数值值后后面面加加“L L(l l)”)。对对超超出出基基本本整整型型值值域域的的整整型型常常量量,可可使使用用长长整整型型常常量量表表示示,其其取取值值范范围围可可达达-(-)。例例如如,123l123l、315315等。等。.类型匹配规则类型匹配规则类类型型匹匹配配规规则则为为:一一个个整整型型常常量量,可可以以赋赋给给能能容纳下其值的整型变量。容纳下其值的整型变量。例例如如,其其值值在在-(-)的的整整型型常常量量,可可以以赋赋给给intint型型变变量量和和long long intint型型变变量量;其其值值在在-(-)的的整整型型常常量量,就就只只能能赋赋给给long l
22、ong intint型变量。型变量。注注意意:常常量量无无unsignedunsigned型型。但但一一个个非非负负整整型型常常量量,只只要要它它的的值值不不超超过过相相应应变变量量的的值值域域(即即取取值值范范围),也可以赋给围),也可以赋给unsignedunsigned型变量。型变量。3.4 3.4 浮点型数据(实型数据)浮点型数据(实型数据)3.4.1 3.4.1 实型变量实型变量 语言的实型变量,分为两种:语言的实型变量,分为两种:(1 1)单精度型单精度型。类型关键字为类型关键字为floatfloat,一般占一般占字节(位)、提供位有效数字。字节(位)、提供位有效数字。(2 2)双
23、精度型双精度型。类型关键字为类型关键字为doubledouble,一般一般占个字节、提供占个字节、提供15161516位有效数字。(还有位有效数字。(还有long long doubledouble型,型,6464字节字节,但应用较少。),但应用较少。)3.4 3.4 浮点型数据(实型数据)浮点型数据(实型数据)3.4.2 3.4.2 实型常量实型常量 .表示形式表示形式实型常量即实数,在语言中又称浮点数,其值有两种表达实型常量即实数,在语言中又称浮点数,其值有两种表达形式:形式:(1 1)十进制形式。例如)十进制形式。例如3.143.14、9.89.8。(2 2)指数形式:)指数形式:EE(
24、e e)。例如。例如3.03.0+5+5等等(说明规范表示方法)。(说明规范表示方法)。.关于类型关于类型 实型常量不分实型常量不分floatfloat型和型和doubledouble型,型,通常以通常以doubledouble型处型处理。理。一个实型常量,可以赋给一个实型变量(一个实型常量,可以赋给一个实型变量(floatfloat型或型或doubledouble型)。型)。3.4 3.4 浮点型数据(实型数据)浮点型数据(实型数据)3.4.3 3.4.3 实型变量的存放与舍入误差实型变量的存放与舍入误差 实型变量在内存中一般占有实型变量在内存中一般占有4 4个字节,并在内存中以指数形式存储
25、,个字节,并在内存中以指数形式存储,系统把一个数据分成小数部分和指数部分分别存放。系统把一个数据分成小数部分和指数部分分别存放。+.31415921符号位符号位小数部分小数部分指数部分指数部分=3.141592由于一般实数数据有一定的有效位数(单精度有效数字为由于一般实数数据有一定的有效位数(单精度有效数字为6-76-7位,双位,双精度有效数字为精度有效数字为15-1615-16位),有效数字以外的数字将被舍去,从而产生计位),有效数字以外的数字将被舍去,从而产生计算上的误差。算上的误差。程序举例程序举例123456.789X10123456.789X105 5+10+10的值,打印计的值,打
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 03 数据类型 运算
限制150内