c语言第二章数据、运算

上传人:san****019 文档编号:71604004 上传时间:2019-01-21 格式:PPT 页数:96 大小:711.81KB
返回 下载 相关 举报
c语言第二章数据、运算_第1页
第1页 / 共96页
c语言第二章数据、运算_第2页
第2页 / 共96页
c语言第二章数据、运算_第3页
第3页 / 共96页
c语言第二章数据、运算_第4页
第4页 / 共96页
c语言第二章数据、运算_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《c语言第二章数据、运算》由会员分享,可在线阅读,更多相关《c语言第二章数据、运算(96页珍藏版)》请在金锄头文库上搜索。

1、第二章 数据、运算符和表达式,常量、变量以及函数等都是程序的基本操作对象,统称为数据。根据数据的取值范围以及能在其上所进行的运算,可把数据分为各种类型,不同类型的数据一般在内存中占用不同的存储空间,同时,数据的类型不同,能够参加的运算也不同。语言中的数据类型非常丰富,大体上可划分为基本的数据类型和导出的数据类型两种,基本数据类型主要包括整型、字符型和单双精度浮点型等;导出数据类型是在基本数据类型的基础上产生的,其中包括数组、结构等。,本章主要讨论语言中的一些基本概念,如变量、标识符等,同时详细说明语言中的几种基本数据类型、算术运算符、关系运算符、逻辑运算符以及利用这些运算符来构成相应表达式的一

2、些规则。,2.1 基本概念,2.1.1 标识符,标识符:是指用来标识程序中用到变量名、函数名、类型名、数组名、文件名以及符号常量名等的有效字符序列。,在语言中,标识符的命名规则是:由字母(大、小写皆可)、数字及下划线组成,且第一个字符必须是字母或下划线。,合法的标识符名:,year,Day,ATOK,x1,_CWS,_change_to,不合法的标识符名:,#123,.COM,$100,1996Y, 1_2_3,在语言中,大写字母和小写字母是有区别的,即作为不同的字母来看待。如标识符RAN、Ran和ran分别表示三个不同的标识符,这一点同其它高级语言是有区别的,应引起注意。,2.1.2 常量,

3、常量:又称常数,是指在程序运行过程中其值不能被改变的量。常量也分为不同的类型,这是由常量本身隐含决定的。,符号常量:为了增加程序的可读性,可以用一个名字(字符序列)来代表一个常量,此时的常量被称为符号常量。,2.1.3 变量,变量:是指在程序运行过程中其值可以被改变的量。变量被区分为不同的类型,不同类型的变量在内存中占用不同的存储单元,以便用来存放相应变量的值。,组成变量名(标识符)的有效字符数随语言的编译系统而定。有的编译系统允许使用长达31个字符的变量名,而有的编译系统只取变量名的前8个字符作为有效字符,后面的字符无效,不被识别,这样,只要变量名的前8个字符相同,就被认为是同一个变量。因此

4、,在进行程序设计之前,应首先了解所使用的编译系统中对变量名长度的规定,以免造成变量使用上的混乱。,2.1.4 关键字,关键字:又被称为保留字或保留关键字,也是语言中的一种标识符,它被用来命名语言程序中的语句、数据类型和变量属性等。,作用:被用来命名语言程序中的语句、数据类型和变量属性等。每个关键字都有固定的含义,不能另作其它用途。,注意:语言中的所有关键字都是用小写字母来表示的。,2.2 基本数据类型,在语言中,最基本的数据类型只有四种,它们分别由如下标识符进行定义:,int 整型 char 字符型 float 单精度浮点型 double 双精度浮点型,语言规定,对程序中用到的所有变量,都必须

5、先定义后使用,每个变量只能与一种数据类型相联系。在定义变量时,不能把语言中具有固定含义的关键字(如int、char等)作为变量名,同时,同一个函数内所定义的变量不能同名。,2.2.1 整型变量及其常量,1. 整型变量,整型变量:可用来存放整型数据(即不带小数点的数)。,其定义方式如下所示:,int i1,i2;,其中i1和i2即被定义为整型变量。,2. 整型常量,在语言中,整型常量可以用三种数制来表示:,(1) 十进制整型常量:如250,-12等,其每个数字位可以是09。,(2) 十六进制整型常量:如果整型常量以0x或0X开头,那么这就是用十六进制形式表示的整型常量。例如,十进制数的128,用

6、十六进制表示为0x80或0X80,其每个数字位可以是09、AF。,(3) 八进制整型常量:如果整型常量的最高位为0,那么它就是以八进制形式表示的整型常量。例如,十进制数的128,用八进制表示为0200。需要注意的是,八进制数中的每个数字位必须是07。,2.2.2 浮点型变量及其常量,1. 浮点型变量,在语言中,把带有小数点的数称为浮点数,也可以称为实型数。,浮点型变量又被称为实型变量,按其能够表示的数的精度,又被分为单精度浮点型变量和双精度浮点型变量。,单精度浮点型变量的定义方式如下所示:,双精度浮点型变量的定义方式如下所示:,float f1,f2;,其中f1和f2即被定义为单精度浮点型变量

7、。,double d1,d2;,其中d1和d2即被定义为双精度浮点型变量。,单精度浮点型变量和双精度浮点型变量之间的差异,仅仅体现在所能表示的数据的精度上,如果单精度浮点型所提供的精度不能满足要求时,则可以考虑使用双精度浮点型。,在不同的系统中,float型数据和double型数据所能提供的精度是有差异的,一般来讲,在同一个系统中,double型变量值的最大有效位数,通常是float型的两倍。,2. 浮点型常量,浮点型常量一般不分float型和double型,任何一个浮点型常量,既可以赋给float型变量,也可以赋给double型变量,但由于float型变量和double型变量所能表示的数的精

8、度不同,所以,在赋值时,将根据变量的类型来截取相应的有效位数。,浮点型常量有如下两种表示形式:,(1) 十进制数形式:它是由数字和小数点组成的,例如,3.14159,-7.2,9.8等都是用十进制数的形式表示的浮点数。,(2) 指数法形式:指数法又称为科学记数法,它是为方便计算机对浮点数的处理而提出的。例如,十进制数的180000.0,用指数法可表示为1.8e5,其中1.8被称为尾数,5被称为指数,字母e也可以用E来表示。又如,0.00123可表示为1.23E-3。需要注意的是,用指数形式来表示浮点数时,字母e或E之前(即尾数部分)必须有数字,且e后面的指数部分必须是整数,例如,e-3,9.8

9、e2.1,e5,.e3,e等都是不合法的指数表示形式。,2.2.3 字符型变量及其常量,1. 字符型变量,char c1,c2;,字符型变量用于存放一个单个字符。它的定义方式如下所示:,其中c1和c2即被定义为字符型变量。,2. 字符型常量,字符型常量是由一对单引号括起来的一个字符,例如,A,*和8等都是合法的字符型常量。,在语言中,还允许使用一些特殊形式的字符型常量,这些字符型常量都是以反斜线字符开头的字符序列(又称为转义字符)。常用的以字符开头的特殊字符:,n: 换行字符(回车换行) r: 回车字符(光标返回本行第一列,但不删字符) b: 退格字符(后退一列,但不删字符) t: 制表字符(

10、横向跳格,输出8个空格) : 单引号字符 “: 双引号字符 : 代表一个反斜线字符,除了上述具有特殊意义的字符外,语言还允许在字符后面紧跟13位八进制数或在x后面紧跟12位十六进制数来表示相应系统中所使用的字符的编码值。使用这种表示方法,可以表示字符集中的任一字符,包括某些难以输入和显示的“控制字符”,ASCII码表中编码值小于0x20的字符就属于这一类字符。例如,响铃字符(bell),在ASCII码表中的编码值为7,在程序处理过程中,为了发出响铃声音,可通过显示7(07或007)码来获得响铃效果。,需要注意的是,上面介绍的由开头的特殊字符,仅代表一个单个字符,而不代表多个字符,它仅代表相应系

11、统中的一个编码值。,3. 字符串常量,字符串常量:是由一对双引号括起来的字符序列。,从表面上看,“string“是由6个字符组成的,但实际上它是由7个字符组成的,这是因为在语言中,系统自动地在每个由双引号括起来的字符串的最后补上0字符,即ASCII码值为0的字符。因此,语言中的每个字符串都是以0为结束标志的。,例如,“string“,需要注意的是,不能将字符串常量赋给一个字符型变量,如果要保存字符串常量的话,需要使用以后介绍的字符数组来存放。,2.2.4 长整型、短整型和无符号整型,上面已经介绍了四种基本数据类型,它们是int、char、float和double。语言在int型的基础上又发展了

12、三种基本数据类型,它们是长整型、短整型和无符号整型,分别用long int、short int和unsigned int来表示。同时还有unsigned short和unsigned long类型。,1. 长整型,长整型变量的定义方式如下所示:,long int lv;,其中lv是长整型变量,关键字int可以省略。,使用长整型变量的目的是为了存放比较大的整数。长整型变量能够表示的数值范围与计算机系统有关,一般是int型变量有效位数的两倍,int变量如果占两个字节,则long int变量可能占4个字节,这样,长整型变量所能表示的数值范围,将远远超过一般整型变量所能表示的范围。,在整型常量的末尾加

13、上字母L或l,就构成了长整型常量。这种写法往往用在函数实参中(如果函数的形参为long int,则要求实参也为long int,此时用123作参数不行,而要用123L作参数)。,可将987654写成987654L或987654l。,例如,2. 短整型,短整型变量的定义方式如下所示:,short int sv;,其中sv是短整型变量,关键字int可以省略。,短整型变量用于存放比较小的整型数,使用短整型的目的是为了节省计算机的内存空间,但一个短整型变量所占的内存字节数与相应的系统有关,在有的计算机系统中,短整型变量所占用的存储空间少于整型变量所占用的存储空间,但在有的系统中,short int变量

14、和int变量占用相同的内存空间。,短整型常量与一般的整型常量没有明显的区别,其区别仅仅在于所能表示的数值大小而已。在有的PC机上,短整型变量和整型变量都占用两个字节的内存空间,因此,所能表示的数值大小也完全一样,即-3276832767之间。,要将123赋给短整型变量sv,则需要使用如下语句: sv=123;,例如,3. 无符号整型,无符号整型变量的定义方式如下所示:,unsigned int uv;,其中uv是无符号整型变量,关键字int可以省略。,一个整型常量后面加字母U或u,就被认为是unsigned int 型, 如12345u在内存中按unsigned int 规定的方式存放(最高位

15、不作为符号位,而用来存储数据),如果写成-12345u,则将其转换为补码存储。,无符号整型变量主要用于存放非负整型数,由于这种变量与int型变量占用相同的内存空间,因此,它能够存放的正整数范围将大于int型变量所能存放的正整数范围。,无符号整型常量总是大于等于0的正整数。在有的PC机上,无符号整型常量的数值范围一般为065535之间。例如,要将100赋给无符号整型变量uv,则需要使用如下语句: uv=100;,2.2.5 类型定义typedef,语言提供了许多标准类型名,如上面介绍的int、char和float等,用户可以直接使用这些类型名来定义所需要的变量。同时,语言还允许使用typedef

16、语句来定义新的类型名,以取代已有的类型名。,例如:,typedef int counter;,其作用是定义counter来等价于基本数据类型名int,以后,就可以利用counter来定义int型变量了。,例如:,counter i,n;,使用类型定义的优点是能够增加程序的可读性。由上述语句可以看出,当用counter来定义i、n变量时,就可以判断出i、n变量的作用可能是当计数器使用,但如果用int来定义的话,就难以看出这种用途。,其等价于:,int i,n;,使用typedef语句需要注意如下几个问题:,(1) typedef语句不能创造新的类型,只能为已有的类型增加一个类型名,这也就是说原有的类型名仍然可以使用。,(2) typedef语句只能用来定义类型名,而不能用来定义变量。,2.3 算术运算符、赋值运算符及其表达式,语言的运算符很多,本节主要介绍算术运算符、赋值运算符及其相应的表达式。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

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