第2章-基本数据类型、操作符和表达式

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第2章基本数据类型、操作符和表达式计算机处理的基本对象是数据。变量和常量则是程序的最基本的数据形式,将它们用操作符(也称为运算符)连接起来,便构成了表达式。本章介绍C语言中关于变量、常量、操作符和表达式的语法规则。这些语法规则是C语言的基本要素。数据类型2.1整型数据2.2实型数据2.3字符型数据与字符串2.4变量说明与初始化2.5运算符和表达式2.6小结2.72.1数据类型在C语言中,数据的类型分为基本数据类型、构造类型、指针类型和空值类型。对于每一种数据类型的数据,又可分成几种不同类型,如图2-1所示。带符号整型无符号整型单精度浮点型双精度浮点型实型整型字符型数组型结构型共用型枚举型构造类型基本数据类型指针类型空值类型数据类型图2-1C语言的数据类型通常将整型和实型统称为数值型。构造类型是由若干数据类型组合在一起构造成的复杂数据类型。指针类型可以表示数据的存储地址。空值类型表示没有数据值。各种类型数据又可分为常量和变量。常量是程序运行中其值不能改变的数据。每个变量有自己的名字,叫变量名,变量用来存储在程序运行中其值可以发生变化的数据,一般用于存储原始数据、中间计算结果和最终计算结果等。2.2整型数据2.2.1整型常量在C语言中使用以下3种不同进位制的整型常量。(1)十进制数:例如,13,−15,0等。(2)八进制数:八进制数的书写方法是在数字前加一个数字0,例如,015,−013,017,00等。(3)十六进制数:十六进制数的书写方法是在数字前加一个0x,例如,0x0,−0x15,0xaf等。为了扩大整型数据的取值范围,C语言还提供了一种长整型常量。长整型常量在计算机中占用4个字节,相应的取值范围扩大到−2147483648~+2147483647。2.2.2整型变量整型变量在计算机内存中占两个字节(即16bit),取值范围为从−32768~+32767(−215~215−1)。用以说明整型变量的关键字(也称为数据类型符)为int。定义变量数据类型语句的一般格式为:数据类型符变量名1,变量名2,…C语言规定,每个变量在使用前,都必须先定义。在关键字int前加上修饰符,可改变整型变量在内存所占位数和取值范围。下列4种修饰符可以用来修饰整型变量:(1)signed带符号的整型变量;(2)unsigned无符号的整型变量;(3)long长型整型变量;(4)short短型整型变量。在表2-1中列出了用这些修饰符修饰整型变量后,整型变量在计算机内存中所占位数和取值范围。2.3实型数据实型数据也称做浮点数,是一种带小数点的数。2.3.1实型常量实型常量就是带小数点的10进制常数。在C语言中实型数据有两种表达(书写)方式:一种是用数字和小数点表示的,另一种是用指数方式表示的。实型常量在计算机内存中一般占用4个字节,其数值取值范围是10−38~1038。有效数字是7位。当一个实型常量的数值超过了它能表达的精度时,C语言可以自动将其精度扩大到15~16位(双精度)的有效数字。2.3.2实型变量实型变量用来存储实型数据。实型变量分为如下两种。(1)单精度实型变量或简称实型变量或浮点型变量,其类型标识符为float。(2)双精度实型变量或称双精度浮点型变量,其类型标识符为double。在表2-2中列出了以上两种实型变量在计算机内存中的所占位数和取值范围。2.4字符型数据与字符串2.4.1字符型常量C语言的字符型常量是用单引号括起来的单个字符,如‘a’,‘B’,‘*’等都是字符型常量。字符型常量在计算机内存中是用相应字符的ASCII存储的,占用一个字节的空间。在C语言中字母是区分大小写的,所以,‘a’和‘A’是不同的字符型常量,由ASCII代码表可以知道,字符型常量‘a’存储的是十进制数97,而字符型常量‘A’存储的十进制数65。因为在整型数与字符常量存在着这种对应关系,在C语言中字符型常量可以作为整型数来使用,整型数据(如果在ASCII范围内的话)也可以作为字符型数据来使用。在C语言中支持一类特殊字符,它们以反斜杠“\”开头,称为反斜杠字符常量,或称转义字符。转义字符是将斜杠后面字符的含义转变为另一种意义了。2.4.2字符型变量字符型变量是C语言的一种数据类型,用关键字(类型符)char说明,用于存储字符常量或数值。字符型变量可以用变量修饰符signed和unsigned来修饰。表2-3列出了字符型变量在计算机内存中所占的位数和取值范围。类型符char和signedchar在意义上是没有区别的。一个字符型变量只能存储1个字符,它是以该字符的ASCII值存储的,并占一个字节的宽度。字符型变量和整型数变量之间可以相互通用。2.4.3字符串常量字符串常量简称字符串。字符串不是一种数据类型,它是用双引号扩起来的一串字符。字符串中的字母是区分大小写的。组成字符串的字符个数,叫做字符串长度。如果字符串中含有转义字符,则每个转义字符当作一个字符看待。每个字符在内存占一个字节的空间。但每个字符串在内存中占用的实际字节数等于字符串的长度加1。字符串常量与字符常量在书写格式上的区别就在于,字符常量是用单引号括起来的,而字符串常量是用是双引号括起来的。2.5变量说明与初始化2.5.1变量说明(定义)在C语言中,变量是用变量名来表示的,变量名为一合法的C标识符。在C程序中,变量在引用前,必须先进行说明,说明变量的属性,包括变量的名字和数据类型。变量说明也称为变量定义。C语言的编译系统将根据变量说明,给变量分配相应的存储空间。变量说明语句的一般格式是:数据类型变量名列表;其中,“数据类型”为前面介绍的C语言数据类型符(见表2-1、表2-2和表2-3),也可以是以后介绍的其他数据类型符。“变量名列表”是所要说明的一些同类型的变量名,变量名之间要用逗号分开。说明语句以分号结束。2.5.2变量的初始化在对变量进行定义的同时给变量赋值称为变量的初始化。变量初始化的一般格式如下:变量类型变量名1=常量1,变量名2=常量2,…变量的初始化是在程序运行到该变量所在的函数时进行的。如果定义变量时没有初始化,可以在以后用赋值语句给变量赋值。一般情况下,如果变量在程序中没有初始化,则在赋值之前,它的值是不确定的,因此,程序中在引用某变量之前,该变量应该初始化或赋值。以后还会介绍在某些情况下,没有初始化的变量的初始值可以是确定的。2.6运算符和表达式2.6.1运算符运算符也称操作符,是一种表示对数据进行何种运算处理的符号。编译器通过识别这些运算符,完成各种算术运算和逻辑运算。运算的对象(数据)称为操作数。每个运算符代表某种运算功能,每种运算功能有自己的运算规则,如运算的优先级、结合性、运算对象类型和个数,以及运算结果的数据类型都有明确的规定。C语言的基本运算符有以下几大类:算术运算符;逻辑运算符;关系运算符;位运算符;赋值运算符;条件运算符;逗号运算符;数据长度运算符。除了这些基本运算符外,还有一些专门用途的运算符,如:指针运算符;改变优先级运算符;成员运算符;下标运算符;其他。2.6.2表达式用运算符把运算对象连接起来所组成的运算式,在C语言中叫做表达式。按照规定的运算规则,对表达式进行运算所得到的结果,称为表达式的值。在C语言中,就是用圆括号来提高运算顺序的。在C语言中,括号也看作是运算符(提高运算符运算优先级),而且它的优先级别最高。对优先级相同的运算符,C语言还规定了结合性。若是按自左向右的顺序进行运算,则结合性称为自左向右的;若是按自右向左的顺序进行运算,则结合性称为自右向左的。表2-4列出了C语言的各种运算符、名称、优先级和结合性。表达式描述数据的加工过程。在书写表达式时,不仅要正确理解所使用的每个运算符的功能,还要正确掌握运算符的优先级和结合性。利用圆括号,可以像一般数学计算那样,可以任意地改变表达式的运算顺序。表达式值的数据类型,因运算对象的不同而不同。归纳起来可分为整型、实型和逻辑型。逻辑型数据是只有两个可能值的数据,这两个值是:真和假。在C语言中,“真”用数字1表示,“假”用数字0表示。因此,逻辑值也可以按整型数看待。从构成表达式的运算符来看,可以把表达式分成以下几种。(1)算术表达式:由算术运算符连接数值型运算对象构成的表达式为算术表达式,计算的结果仍为数值型。(2)关系表达式:由关系运算符连接表达式构成的表达式关系表达式,关系表达式的运算的结果为逻辑值。关系表达式的一般形式为:表达式1关系运算符表达式2(3)逻辑表达式:由逻辑运算符连接表达式构成的表达式为逻辑表达式,逻辑表达式的运算结果为逻辑值。逻辑表达式的一般形式为:表达式1逻辑运算符表达式2逻辑运算符表达式(4)条件表达式:由条件运算符连接表达式构成的表达式,其一般形式为:表达式1?表达式2:表达式3(5)赋值表达式:由赋值运算符或自反赋值运算符号“=”连接表达式构成的表达式称为赋值表达式。其一般形式为:变量赋值运算符表达式变量自反赋值运算符表达式赋值表达式的运算功能是将赋值运算符右边表达式的值赋给赋值运算符左边的变量。(6)逗号表达式:由逗号运算符连接表达式构成的表达式称为逗号表达式,其一般形式为:表达式1,表达式2,表达式3,…2.6.3表达式中数据类型的转换C语言规定了如下的数据类型的转换原则。(1)数据类型自动转换原则表达式中参加运算的各个运算对象,先转换成其中数据长度最长的数据类型,然后再计算。计算结果的数据类型就是其中数据长度最长的那个数据的数据类型。字符型数据参加运算时,要转换为整型(int)或长度更大的其他数据类型,这取决于与字符型数据一起参加的运算对象的数据类型。图2-3所示的例子说明了上述的类型转换原则。其中有:charch;inti;floatf;doubled;图2-3数据类型转换(2)强制性数据类型转换在表达式中,可以根据需要,把其中任意一个数据的类型转换为另一个数据类型,称为数据类型的强制转换。强制数据类型转换的一般格式是:(数据类型)表达式(3)运算结果存入变量时的数据类型自动转换如果表达式的运算结果的数据类型与要存入的变量类型不一致,则将运算结果的数据自动转换成要赋予的变量的数据类型。关于数据类型转换有一点要注意,表达式计算过程中,数据类型的转换是暂时的,只是为了用于当前计算,原来类型的值并未改变或丢失。小结本章讨论了C语言的基本数据类型,常量、变量及变量初始化,操作符和表达式等基本语法问题。通过本章的学习,要掌握以下问题。1.基本数据类型C语言有4种基本数据类型,它们是:整型integer;字符型char;浮点型float;双精度型double;对于这些基本数据类型,要掌握其数值范围和所占内存的长度,熟记它们的关键字(类型符)。2.常量C语言中的常量有数值型的(包括整数和实数)、字符型的和字符串常量。整数又有十进制、八进制和十六进制整数之分。常量也可以用标识符表示,称为符号常量。符号常量将在以后介绍。3.变量涉及变量的内容很多,也很重要。首先要掌握好变量的定义和初始化的方法。因为这是最基本的。4.C语言的基本操作符C语言的操作符非常丰富,本章对C语言运算符的总体情况作了介绍。对于它们的进一步应用,将在以后各章详细讲述。5.表达式表达式是C语言最基本的成分。可以说,对数据的处理都是通过表达式实现的。本章对C语言中的各种表达式作了系统的介绍。在今后的程序设计学习中,将进一步介绍各类表达式的应用。6.数据类型在表达式中的转换在一个表达式中,含有不同数据类型之间的运算,是常有的事。为了获得预期的或正确的运算结果,还需掌握不同数据类型在表达式中的转换关系。必要时,需要人为地强制作某些数据类型的转换,才能得到所想要的计算结果。为此,C语言提供了数据类型的强制转换。

1 / 85
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功