版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章数据类型、运算符与表达式本章要点:(1)C语言的基本数据类型;(2)常量和变量;(3)不同数据类型运算的规则;(4)算术运算及表达式。返回2.1C语言的数据类型数据是程序处理的对象。程序中对数据的描述,主要表现在对数据类型的定义上,编译程序根据定义在内存中分配适当的空间来存放数据。图2.1给出了C语言的各种数据类型。表2.1列出了32位C语言编译系统中的基本数据类型、长度及取值范围。返回2.2常量在程序运行过程中,其值不能被改变的量成为常量。常量有不同的类型。1.整型常量有3种:①十进制整数。②八进制整数。以0开头的是八进制数。③十六进制整数。以0x开头的是十六进制数。2.实行常量在C语言中也称浮点数,有两种表现形式:①十进制数形式。也称小树形式。②指数形式。也称科学记数法。3.字符常量C语言中的字符常量是用单引号括起来的一个字符,C语言中把以反下一页返回2.2常量斜线“\”开头的字符称为转义字符,常见的转义字符见表2.2。4.字符串常量在C语言中,字符串常量用双引号括起来。我们把双引号括起来的字符个数称为字符串的长度。“”是空字符串,长度为0。字符串在存储时,除了要存储双引号里面的字符之外,C规定还要多存储一个字符“\0”,作为“字符串的结束标志”。“\0”是ASCII码为0的字符,是一个空操作码,它不引起任何控制动作,也不是一个可显示的字符。比如字符串“CHINA”的长度为5,而实际需要6个存储单元。其存储情况如图2.2所示。上一页下一页返回2.2常量5.符号常量可以用一个标识符来代表一个常量。符号常量的定义格式为:
#define符号常量名常量一般符号常量名用大写,以便与变量名相区分。上一页返回2.3变量在程序运行过程中,其值可以改变的量称为变量。要想在程序中使用变量,必须先进行变量定义。其一般格式为:数据类型符变量名表;变量名是用来标识变量在内存中所分配的单元。不同类型的变量,所分配的内存单元的个数也不同。如char类型需要1个字节的存储单元,而float类型则需要4个字节的存储单元(见表2.1)。如有:shortintvalue;
value=10;在内存中找到连续的两个字节的自由内存单元分配给变量value,然后将10存入这两个字节中。如图2.3所示。返回2.4变量的初始值程序中用到的变量,要先定义后使用。在使用变量时,如果它出现在表达式中,必须要有一个初始值,否则该变量的值将是一个不确定的值。变量的初始值可以通过赋值语句、读语句和变量初始化来获得。变量的初始值也可以用变量初始化来获得,即在说明变量的同时给变量赋值。变量初始化的一般语法格式为:数据类型符变量名=常量表达式;其中“常量表达式”的值即作为变量的初始值。返回2.5数值型数据间的运算在C语言中,不同类型的数据可以在同一表达式中进行混合运算,但运算前要进行必要的类型转换。转换方式有两种:一种是自动转换,另一种是强制转换。1.类型的自动转化不同类型的数据在进行运算时,按图2.4的转换规则自动进行。图2.4中横向向左的箭头表示即使类型相同也必须转换。如两个字符型数据在进行运算时必定先转换成整型;两个float类型的数据在运算时全部转换为double类型,以提高运算的精度。纵向的箭头表示当运算对象为不同类型的数据时转换的方向,并不表示转换过程。存储的数据越小,类型的级别越低;否则越高。自动转换总是从级别低的类型向高级别的类型转换。下一页返回2.5数值型数据间的运算2.类型的强制转换强制转换的方法是在需要转换的表达式前面加上用括号括起来的类型符。自动转换一般不会使数据受到损失,而强制转换就有可能使数据受损或结果难以理解,这是由于高级别的类型转换为低级别的类型时造成的。类型转换可按下面的方法进行:①整型转换为实型:补足小数位及精度。②实型转换为整型:截断小数位,只保留整数部分。③较长的整数转换为较短的整数:截断高位,只保留低位数据。如图2.5所示。④较短的数据转换为较长的整数:补足高位,数值不变。⑤等长的整形之间的转换:各二进制位不变。int→unsigned时,原来的符号位不再作为符号,而变为数据的一部分;unsigned→int时,最高位被当做符号位。如图2.6所示。上一页返回2.6运算符、表达式及常用数学函数运算是对数据的加工。最基本的运算形式常常可以用一些简洁的符号记述,这些符号称为运算或操作符。被运算的对象称为运算量或操作数。表达式就是用运算符把运算量连接起来所构成的式子。C语言表达式分为算术表达式、赋值表达式、逗号表达式、条件表达式、关系表达式和逻辑表达式等。在求表达式的值时,C语言按照各运算符的优先级与结合性进行运算。表2.3概括了全部运算符的优先级和结合性规则。2.6.1算术运算符及算术表达式由算术运算符与运算量构成的表达式称算术表达式。包括基本算术运算符和自增自减运算符两大类。下一页返回2.6运算符、表达式及常用数学函数1.基本算术运算符有+(加)、-(减)、*(乘)、/(除)和%(取余)5个运算符,前4个是四则运算符。注意:两个整数相除的结果仍为整数。2.自增、自减运算符有++(自增)、--(自减)两个运算符,它们只能用在变量的前面或后面,分别称为前缀形式和后缀形式。其作用是使变量的值增1或减1.2.6.2常用数学函数C语言提供了丰富的数学函数,函数存在于math.h头文件中。常用的数学函数见表2.4.上一页下一页返回2.6运算符、表达式及常用数学函数在使用数学函数之前,首先要用编译预处理命令“#include”将math.h头文件包含到用户源程序中。为了在C程序中完成数学计算,经常要使用数学公式。C语言要求把数学公式转换为C语言能够接受的式子,即C语言表达式。数学公式转换为C语言表达式举例见表2.52.6.3赋值运算符及其表达式1.赋值运算符和赋值表达式赋值运算符“=”,有它构成的表达式称赋值表达式。其语法格式为:变量名=表达式其作用是将“=”右边的表达式的值赋给左边的变量。如果表达式值的类型与变量的,类型不同,将会把表达式的值自动转换为变量的类型上一页下一页返回这种转换是强制性的。2.复合赋值运算符及其表达式赋值运算符可以与所有的双目运算符合在一起,构成一种新的运算符,称复合的赋值运算符。使用赋值运算符有两大好处:a.简化程序,使程序的可读性更好。b.提高程序的编译效率。2.6.4其他运算符1.逗号运算符由逗号运算符与运算量构成的表达式称为逗号表达式。其语法格式为2.6运算符、表达式及常用数学函数上一页下一页返回2.6运算符、表达式及常用数学函数
表达式1,表达式2,……,表达式n其求值过程是:从左向右逐个计算每一个表达式,把最右侧表达式的值作为整个表达式的值。逗号运算符是所有运算符中优先级最低的。2.求字节运算符运算符sizeof是用来计算变量或数据类型所占的内存字节数。3.位运算符C语言中提供了对位的运算,是通过位运算符来实现的。所谓位运算是指按位来进行的运算。所以应该先把参与运算的数据转换为二进制数再进行相应的运算。位运算符及其含义见表2.6.上一页返回图2.1C语言的数据类型返回表2.132位C语言编译系统中的基本数据类型、长度及取值范围下一页表2.132位C语言编译系统中的基本数据类型、长度及取值范围(续表)返回上一页表2.2转义字符返回图2.2字符串“CHINA”在内存的存储形式返回图2.3变量的内存分配与存储(a)实际分配情况;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二建师模拟试题及答案
- 波谱分谱试题及答案详解
- “潜质生”历史学困转化研究
- 化妆品乳化锅清洗作业指导书
- 2026学年云南省曲靖市四年级语文期末自测模拟突破瓶颈题(详细参考解析)详细答案和解析
- 企业联盟管理对技术共享的影响研究报告
- 基于神经过程模型的元学习方法研究结题报告
- 2026学年山东省潍坊市六年级语文期末高分快速提分卷详细参考解析详细答案和解析
- 卫生院运营公司员工薪酬福利管理制度
- 二手车购买意向合同
- 《建筑施工手册(第六版)》
- 急危重症护理学题库(附答案)
- 2025年湖南省高中学业水平合格性考试语文卷试题(含答案)
- 石家庄2025年河北石家庄市市属国有企业招聘管理人员及专业技术人员106人笔试历年参考题库附带答案详解
- 暑期用电安全培训课件
- 风机基础施工方案及工艺
- 文库发布:内卷课件
- 财务公司记账服务报价单-模板
- 1101无菌检查法:2020年版 VS 2025年版对比表
- 五官科中医饮食调护与食疗方
- 道路开口施工方案及安全措施
评论
0/150
提交评论