C程序设计(第四版)第2章数据类型及其运算.ppt

上传人:tia****nde 文档编号:14142078 上传时间:2020-07-06 格式:PPT 页数:38 大小:543.50KB
返回 下载 相关 举报
C程序设计(第四版)第2章数据类型及其运算.ppt_第1页
第1页 / 共38页
C程序设计(第四版)第2章数据类型及其运算.ppt_第2页
第2页 / 共38页
C程序设计(第四版)第2章数据类型及其运算.ppt_第3页
第3页 / 共38页
点击查看更多>>
资源描述
第二章 数据类型及其运算,基本符号 基本数据类型 常量与变量 运算符和表达式 数据类型转换,2.1 基本符号,2.1.1 字符集 C语言中可以使用的合法字符有: 1、字母和数字 小写字母:a,b,c,z 大写字母:A,B,C,Z 数字:0,1,2,9 2、特殊字符 + = - _ ( ) * # : ” / ? 3、空白字符 包括空格、换行符和制表符,2.1 基本符号,2.1.2 标识符 标识符:在程序设计中,常用具有一定意义的名字来标识程序中的变量、函数、数组以及由用户自己定义的数据类型等,以方便在程序设计中按名字来访问这些对象,这些对象的名字被称为标识符。,2.1 基本符号,C语言中标识符的命名规则: C语言规定,标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或者下划线; C语言中标识符的长度没有统一规定,随系统而不同,ANSI C规定标识符长度不得大于32个字符,而PC机中通常是前8个字符有效; 用户选用的标志符不能是C语言的关键字。,2.1 基本符号,在命名一个标识符时,应注意以下一些问题 C语言是大小写敏感的,所以大写字母和小写字母被认为是两个不同的字符; 在选择标识符时,应注意做到“见名知意”,即选择有意义的英文单词或者缩写作标识符,以增加程序的可读性; 习惯上,变量名用小写字母表示。,2.1 基本符号,2.1.3 关键字 关键字又称保留字,是一类特殊的标识符,它们是由系统定义,供系统专用的,都具有特定的含义。,2.1 基本符号,C语言的关键字如下:,2.2 数据类型,数据类型决定了数据占用内存的大小和布局,也就决定了它的取值范围,以及在这些值上允许进行的操作。 C语言提供了丰富的数据类型,具体如下表所示。 本章主要介绍基本数据类型,在下表中,列出了每种基本数据类型的关键字、占用的字节数以及取值范围。,2.2 数据类型,基本数据类型,2.3 常量,常量:在程序运行过程中,其值不能改变的量称为常量。 常量也有数据类型,C语言规定常量的类型有四种:整型常量,实型常量,字符常量和字符串常量。常量不需要预先定义,在需要的地方直接使用即可。常量的类型由其字面格式决定。,2.3 常量,2.3.1 整型常量 1、整型常量的表示形式:在C语言中有三种数制表示形式。 十进制整数:由数字09和正负号表示; 八进制整数:由数字0开头,后跟数字07表示; 十六进制整数:由0 x(数字的0和字母x,x大小写均可)开头,后跟09,af或AF表示。 2、整型常量的类型 一个整型常量,如果其值在-32768+32767范围内,认为它是int型。 一个整型常量,如果超出了上述范围,而在-2147483648+2147483647范围内,则认为它是long int型。 在一个整型常量后面加一个字母l或L,则认为它是long int型常量,例如:3L就是一个long int型的常量。,2.3 常量,2.3.2 实型常量 1、实型常量的表示形式 小数形式。由数字和小数点组成。例如:12.3、3.0、0.0等。 指数形式。 由尾数部分、字母e或E、指数部分组成。例如:123.4用指数形式可表示为:1.234E+2;0.0123可以表示为:1.23e-2。 在使用指数形式时需要注意,字母e或E之前必须有数字,e后面必须是整数,如e5,1.23e2.5等都是不合法的指数形式。 2、实型常量的类型。默认情况下,实型常量为double类型,若要表示float类型的常量,需要加F或f,例如:1.23f。,2.3 常量,2.3.3 字符常量 字符常量是用单引号括起来的单个字符。 a、*、9等都是字符常量。 一个字符常量在存储时占用一个字节,在该字节中存放的并不是字符本身,而是该字符的ASCII码值,由于字符常量存储的是一个整数,所以它可以像整数一样参加数值运算。 例如:a+5的结果为102。 C语言中还有一类特殊的字符常量,就是以“”开头的字符序列,称为转义字符。常见的转义字符如下表所示。,2.3 常量,转义字符,2.3 常量,2.3.3 字符串常量 用双引号括起来的字符序列称为字符串常量。 例如,”Hello!”,”I am a student.”,”a”,”123”等都是字符串常量。 字符串常量在内存中存放时,除存储字符串中的字符外,还在每一个字符串的结尾加一个“字符串结束标志”,以便系统判断字符串是否结束。C规定以字符0作为字符串的结束标志。如果有一个字符串”Hello!”,此字符串中有6个字符,但在内存中存放时会占用7个字节,如下图所示。,2.4 变量,在程序运行过程中,其值可以改变的量称为变量。 在使用一个变量时,应遵循先定义后使用的原则。 变量定义的格式: 数据类型 变量名1,变量名2,变量名n;,决定分配字节数 和数的表示范围,合法标识符,2.4 变量,变量定义位置:一般放在函数开头 当在程序中定义一个变量时,系统会根据该变量的类型给变量分配相应的内存空间,然后可以通过该变量名来访问此内存单元。 在使用一个变量时,它应该有一个确定的值,可以通过变量初始化来实现。 一个变量的初始化是指在定义一个变量时,给变量赋初值。,2.4 变量,2.4.1 整型变量 整型变量用来存放整型数据,用关键字int说明。例如: int a,b,c; C语言在int这个基本整型基础上,通过在int前加修饰符,又扩展了一些新的数据类型。修饰符有long,short,unsigned等。 2.4.2 实型变量 实型变量按其能够表示的数的精度,分为单精度实型变量和双精度实型变量。 单精度实型变量用关键字float定义,占用4个字节。例如: float f1,f2; 双精度实型变量用关键字double定义,占用8个字节。例如: double d1,d2;,2.4 变量,2.4.3 字符变量 字符变量用来存放单个字符,由关键字char定义。例如: char c1,c2; 一个字符变量占用一个字节的存储空间,只能存放一个字符。在这个字节中存放的是这个字符的ASCII码值。所以字符变量可以像整型变量一样使用。,2.5 运算符和表达式,运算符:用来表示各种运算的符号称为运算符。,2.5 运算符和表达式,在学习运算符时,应从以下几个方面进行考虑: 运算符的功能。 运算符与操作数的关系。 一是运算符所需操作数的个数 单目运算符,即只需一个操作数的运算符,例如:+x; 双目运算符,需要两个操作数的运算符,例如:x+y; 三目运算符,需要三个操作数的运算符 二是运算符所要求的操作数的类型, 运算符的优先级。决定了表达式求值的次序。 运算符的结合方向。在优先级相同的情况下,应按照“结合方向”来处理,结合方向规定了一个运算符自左向右(左结合性)求值,还是自右向左(右结合性)求值。 结果的类型。,2.5 运算符和表达式,2.5.1 算术运算符与算术表达式 基本算术运算符: + - * / % 结合方向:从左向右 优先级: - -* / % - + - (2) (3) (4) 说明: “-”为单目运算符时,右结合性 两整数相除,结果为整数 %要求两侧均为整型数据,2.5 运算符和表达式,自增自减运算符 功能:自增运算符(+)使单个变量的值增,自减运算符(-)使单个变量的值减1。 种类: 前置运算,运算符放在变量之前:+变量、-变量,这种运算的功能是,先使变量的值增(或减)1,然后再以变化后的值参与其它运算,即先增减、后运算; 后置运算,运算符放在变量之后:变量+、变量-,这种运算的功能是,变量先参与其它运算,然后再使变量的值增(或减)1,即先运算、后增减。,2.5 运算符和表达式,优先级是2,高于其他双目算术运算符 结合方向为右结合 说明: 自增自减运算符只能用于变量,不能用于常量或表达式,例如:+5或者(x+y)-都是不合法的表达式。 C语言中,表达式中组合运算符的规则:自左向右取尽可能多的字符组成运算符。例如:a+b,相当于(a+)+b。,2.5 运算符和表达式,2.5.2 赋值运算符与赋值表达式 简单赋值运算符 “=”是简单赋值运算符,赋值表达式的格式为: 变量=表达式 功能:将右侧表达式的值赋给左侧的变量。 赋值运算符的优先级为14,结合方向为右结合;,2.5 运算符和表达式,说明: 左侧必须是变量,不能是表达式或常量; 当左侧变量的类型与右侧表达式的类型不一致时,在赋值时会自动进行类型转换,先把右侧表达式的值转换成左侧变量的类型再进行赋值; 任何一个表达式都应该有一个确定的值,赋值表达式也不例外,它的值就是被赋值变量的值。所以在C语言中,允许出现连续赋值的情况,以下语句是合法的。 int a,b,c; a=b=c=5;,2.5 运算符和表达式,复合赋值运算符 复合赋值运算符包括: 复合算术赋值运算符:+=、-=、*=、/=、%=, 复合位运算赋值运算符:=、。,2.5 运算符和表达式,2.5.3 关系运算符与关系表达式 种类:、=、=、!= 关系运算符全部是双目运算符,作用是比较两个操作数的大小,若关系成立,则结果为“真”,用1表示,否则结果为“假”,用0表示。 关系运算符中、=的优先级较高为6,=、!=的优先级较低为7, 结合方向均为左结合,2.5 运算符和表达式,使用关系运算符时需要注意以下几个方面: 如果两个操作数是数值型的,则按其大小进行比较;如果是字符型的,则按字符的ASCII码值进行比较; 关系表达式的结果为逻辑值“真”或者“假”,用1和0表示,这里的1和0可以作为数值参加其它运算; 应避免对实数作相等或不等的判断,例如,1.0/3.0*3.0=1.0的结果并不是1而是0,是因为实数存在存储误差。所以当需要对实数比较时,可以这样写:fabs(1.0/3.0*3.0-1.0)1e-6。 注意区分“=”与“=”,2.5 运算符和表达式,2.5.4 逻辑运算符与逻辑表达式 种类:&、|、! 逻辑非!是单目运算符,优先级为2,逻辑与(&)和逻辑或(|)是双目运算符,优先级分别为11,12 逻辑表达式的值是逻辑值“真”或“假”,用1和0表示。但在计算一个逻辑表达式的值时,判断操作数的真假时,只有0为假,非0都为真 !的结合方向为右结合,&和|的结合方向为左结合。 逻辑运算符的短路特性:在对一个逻辑表达式求解时,所有的逻辑运算符并不一定都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的值时,才执行该运算符,2.5 运算符和表达式,逻辑运算符的运算规则是用真值表来表示的,2.5 运算符和表达式,2.5.5 逗号运算符与逗号表达式 逗号运算符(,)是C语言提供的一种特殊的运算符,用它将两个表达式连接起来就称为逗号表达式。逗号表达式的格式为: 表达式1,表达式2 逗号运算符是双目运算符,优先级为15;结合方向为左结合 逗号表达式的求值过程是,先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值。用逗号连接的表达式1和表达式2都可以是逗号表达式。 需要注意的是,并不是任何地方出现的逗号都表示逗号运算符,例如函数参数中,逗号是作为分隔符使用的,2.5 运算符和表达式,2.5.7 条件运算符与条件表达式 条件运算符是C语言中唯一的三目运算符,条件表达式的一般格式为 表达式1?表达式2:表达式3 优先级是13,结合方向为右结合。 条件表达式的求解过程为,先判断表达式1的值,如果为真,表达式2的值就是整个条件表达式的值,否则表达式3的值是整个条件表达式的值,2.5 运算符和表达式,2.5.8 长度运算符sizeof sizeof是单目运算符,功能是测试变量或者某种数据类型在内存中占用的字节数。sizeof的一般格式为: sizeof(变量) (测试变量在内存中占用的字节数) sizeof(类型标识符) (测试数据类型在内存中占用的字节数),2.5 运算符和表达式,2.5.9 数据类型转换 自动类型转换 自动类型转换是由编译器自动完成的类型转换。自动类型转换发生在以下几种情况。 不同数据类型混合运算中。在这种情况下,首先将不同的数据类型转换为同种数据类型,然后再进行运算。转换规则如下图所示。,2.5 运算符和表达式,2.5 运算符和表达式, 用一种类型的表达式赋值给另一种类型的变量。在这种情况下,先把表达式的值转换为变量的类型,然后再进行赋值。 在发生函数调用时,实参的类型与形参的类型不一致。在这种情况下,把实参的类型转换为形参的类型,然后再进行数据传递。 函数的类型与函数的返回值的类型不一致。在这种情况下,把函数的返回值转换为函数的类型。,2.5 运算符和表达式,强制类型转换 强制类型转换是由程序员显式指出的类型转换,转换的格式为: (类型标识符)(表达式) 需要注意的是,强制类型转换得到所需类型的中间变量,原变量类型不变。,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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