C语言程序设计教程 教学课件 ppt 作者 王秀贵 等 第2章 数据描述与数据类型

上传人:E**** 文档编号:89386065 上传时间:2019-05-24 格式:PPT 页数:62 大小:462.50KB
返回 下载 相关 举报
C语言程序设计教程  教学课件 ppt 作者 王秀贵 等 第2章  数据描述与数据类型_第1页
第1页 / 共62页
C语言程序设计教程  教学课件 ppt 作者 王秀贵 等 第2章  数据描述与数据类型_第2页
第2页 / 共62页
C语言程序设计教程  教学课件 ppt 作者 王秀贵 等 第2章  数据描述与数据类型_第3页
第3页 / 共62页
C语言程序设计教程  教学课件 ppt 作者 王秀贵 等 第2章  数据描述与数据类型_第4页
第4页 / 共62页
C语言程序设计教程  教学课件 ppt 作者 王秀贵 等 第2章  数据描述与数据类型_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《C语言程序设计教程 教学课件 ppt 作者 王秀贵 等 第2章 数据描述与数据类型》由会员分享,可在线阅读,更多相关《C语言程序设计教程 教学课件 ppt 作者 王秀贵 等 第2章 数据描述与数据类型(62页珍藏版)》请在金锄头文库上搜索。

1、第1页 共62页,第2章 数据描述与数据类型,C语言的词法元素 C语言的数据类型 常量 变量及其类型 用const修饰变量,第2页 共62页,2.1 C语言的词法元素,字符集 单词,第3页 共62页,2.1.1 字符集,英文字母(大小写视为不同的两个字母):az和AZ。 数字字符:09。 特殊字符:+ - * / % . “ # 空格 ( ) _(下画线) 转义字符。,第4页 共62页,2.1.2 单词,关键字 关键字又称保留字,它是一种具有特定含义的系统预定义的单词。系统预定义的意思是指这些单词的具体意义已经由系统定义好了,用户不能再赋予它们新的含义。它们在程序中有不同的使用目的。有些关键字

2、用于语句表示某种动作,有的表示语言预定义的某种数据类型等。所有的关键字都必须小写。下表给出了C语言的关键字。关于这些关键字的意义和用法,将在以后介绍。,第5页 共62页,C语言关键字,第6页 共62页,标识符 标识符由一个或多个字母(大写或小写)、数字或下画线的字符序列组成。标识符的第一个字符必须是字母或下画线。标识符是用户自定义的单词,其作用是用来描述用户程序中的变量名、常量名、标号名或函数名等。这些名字的选取应含义鲜明,能正确地表示程序对象所代表的实体,这对于帮助阅读者理解程序是很重要的。例如,表示次数用times,表示总量用total等。但从语法角度看,下列标识符是正确的: Sum su

3、m a a12abc _result_of,第7页 共62页,注意,由于C语言是区分大小写字母的,因此,Sum和sum是不同的标识符。另外,在命名标识符时,除了要求名字要符合标识符的命名规则和尽量有意义外,还要注意不要使用关键字作标识符,因为关键字是系统已经使用了的且已指定了确切含义的标识符,因此,下列标识符是不符合语法规则的: 1st break a.1 Two word,第8页 共62页,运算符 运算符又称操作符,它是表示某种运算功能的符号,通常由一到两个字符组成,例如,“/”表示除法运算,“=”表示恒等判断运算等。在第4章,将详细讨论C语言的运算符。,第9页 共62页,分隔符 空白符:是

4、空格符、制表符(Tab键产生的字符)和换行符(Enter键产生的字符)的总称,常用作单词之间的分隔符。之所以称它们为空白符,是因为它们被打印出来时,在页面上出现的是空白而不是某个符号。 逗号:它既可以作分隔符,又可以作运算符。作分隔符时,常用于多参数的函数或定义多个变量,作为参数或变量之间的分隔符。逗号作运算符的情况将在4.3节讨论。 分号:在大多数情况下,分号作为一个语句的终结符。分号作为分隔符使用时,仅用在for循环语句中,用来分隔三个表达式。 其他:包括冒号、圆括号和花括号,这些分隔符都是用来构造程序或表达式的。,第10页 共62页,常量 常量是在程序中直接使用符号表示的数据。C语言中,

5、有数字常量、字符常量和字符串常量。关于常量,将在下一节详细讨论。,第11页 共62页,2.2 C语言的数据类型,概述 基本数据类型 构造数据类型 指针类型,第12页 共62页,2.2.1 概述,数据类型是一个广义的概念,它不仅是指某一数据是整数、小数还是字符等,而且还包括了对不同类型数据的组织形式以及运算方法。数据类型是程序中一个很重要的因素,对数据类型的选取,直接决定程序中解决问题的具体方法(算法)。所以,一个程序设计语言所能提供的数据类型的多少,决定了这个语言的问题求解能力。在大多数情况下,需要为每一个数据类型命名(称做类型名),以便利用类型名定义数据对象。 通常,数据类型是按数据处理对象

6、的性质、表示形式、占据存储空间的多少和构造特点来划分的。在C语言中,数据类型可分为基本数据类型、构造数据类型和指针类型三大类。,第13页 共62页,2.2.2 基本数据类型,C语言有五种基本数据类型,即字符型、整型、单精度实型、双精度实型和空类型,系统赋予的类型名分别为char,int,float,double和void。前四种基本数据类型的前面还可以加修饰符。修饰符用来改变基本类型的意义,以便更准确地适应各种情况的需求。有四种修饰符,它们是signed(有符号)、unsigned(无符号)、long(长型符)和short(短型符)。前四种基本数据类型的长度和取值范围随处理器的类型和C语言编译

7、器的实现而有所不同。,第14页 共62页,四种基本数据类型的字长和取值范围,第15页 共62页,2.2.3 构造数据类型,构造数据类型是用户利用已声明的一个或多个数据类型用“构造”的方法声明的较复杂的数据类型。因此,一个构造类型的数据对象,其值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。构造类型的类型名都是由用户命名的。在C语言中,数组类型、结构类型和联合类型都是构造类型。关于构造类型。,第16页 共62页,2.2.4 指针类型,指针是一种具有重要作用的特殊的数据类型,它在C语言中占有举足轻重的地位。尽管指针不是C语言所独有的,如Pascal语言也实

8、现了指针,但C语言对指针在应用上不加限制的灵活性非常高。 我们在1.1节就谈到,内存的每个存储单元对应一个存储地址,如同一座大厦的每个房间都有一个房间号码一样。数据被存放在存储单元(如同房间)里,指针只是存储地址的另一个名字而已。C语言提供了一些运算符,可以通过指针获得存储单元的地址,即通过指针能访问到存储单元中的数据。,第17页 共62页,2.3 常量,整型常量 整数在机内的表示形式 实型常量 实数在机内的表示形式 字符常量 字符串常量 用#define定义常量,第18页 共62页,2.3.1 整型常量,十进制整常数 十进制整常数由09的数字组成,不能以0开头,当然没有小数部分。例如,22,

9、-123等是合法的十进制整常数,而01,256D等不是合法的十进制整常数。 八进制整常数 八进制整常数必须以0开头,即以0作为八进制数的前缀,数字为07。以下各数是合法的八进制数: 01(即十进制数1) 0101(即十进制数65) 0177777(即十进制数65535) 以下各数不是合法的八进制数: 25(无前缀0) 017B2(包含了非八进制数字)-0128(8不是八进制的数字),第19页 共62页,十六进制整常数 十六进制整常数的前缀为0X或0x。由数字09和字母AF或af组成。以下各数是合法的十六进制整常数: 0X1(等于十进制数1) 0X10(等于十进制数128) 0xFFFF(等于十

10、进制数65535) 以下各数不是合法的十六进制整常数: 5A(无前缀0X) 0X3H(含有非十六进制数字),第20页 共62页,整型常数的后缀 整数有九种类型。程序中出现的一个整型常数究竟属于哪一种呢?答案取决于这个整型常数的书写形式,即通过加后缀的方法来区分。默认情况下认为是int型。例如,常数100是int型的。通常,在16位字长的机器上,基本整型的长度也为16位,因此,表示的数的范围也是有限制的。无符号整常数用十进制表示,其范围为065535,有符号数为-32768+32767;无符号数用八进制表示,其范围为00177777;无符号数用十六进制表示其范围为0X00XFFFF。如果使用的数

11、超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。例如: 256L -358000L 012L 0200000L 0X15L 0X10000L,第21页 共62页,长整数256L和基本整常数256 在数值上并无区别。但对256L,因为是长整型量,编译器将为它分配至少4个字节的存储空间;而对256,因为是基本整型,是分配2个字节还是4个字节的存储空间,C语言标准没有明确规定,由编译器决定。因此,在运算和输出格式上要予以注意,避免出错。 也可用后缀“U”或“u”表示无符号整型常数。例如,358u,0x38Au,235Lu 均为无符号数。特别地,如果需要,两种后缀可同时

12、使用且顺序任意。 需要注意的是,从语法角度看,负数-100不是整型常量而是一个常量表达式,因为编译器将负号解释为单目运算符而不是数值的一部分。,第22页 共62页,2.3.2 整数在机内的表示形式,计算机中的数是用二进制来表示的,数的符号也用二进制来表示,一般用最高有效位来表示数的符号,正数和负数分别用0和1表示。多数机器的整数采用补码表示法。以后,在可能引起混淆的地方,用“bit”来表示二进制的“位”。 在补码表示法中,正数采用符号-绝对值表示法,即数的最高有效位表示数的符号,为0表示符号为正,数的其余部分则表示数的绝对值。例如,假设机器字长为16位,则+1补=000000000000000

13、1,+32767补=0111111111111111,+0补=0000000000000000。,第23页 共62页,在补码表示法中,负数X用2n-X来表示,其中n为机器的字长。当n=16时,-1补=216-1=1111111111111111,而-32767补=216-32767=1000000000000001,显然,最高有效位为1表示该数的符号为负。特别注意的是,-0补=0000000000000000,即在补码表示法中,0只有一种表示形式。对于二进制数1000000000000000,在补码表示法中被定义为十进制数-32768。于是,16位补码能表示的数的范围为-32768+32767

14、。一般说来,n位补码能表示的数的范围是-2n-1N2n-1-1。,第24页 共62页,2.3.3 实型常量,一般表示形式 由数码09和小数点组成。例如,3.14,-27.123。 指数表示形式(科学表示法) 整数部分和小数部分可省略其中任一个,但不能两者都省略,例如,.36,200.都是合法的浮点数。 使用指数表示时,E或e的两边都要有数,例如,E2,2.5E都不是合法的浮点数。 实型常量的默认数据类型为double类型,但可以在实型常量后加上后缀F或f,使其类型为float类型,例如,12.34F,1.56E5F等。 如果在实型常量后加上L或l,则该常量为long double类型,例如0.

15、2E3L。 ANSI标准仅规定了long double类型所占空间长度至少与double类型一样长,double类型所占空间长度至少与float类型一样长。因此,实数类型所占空间的实际长度与具体的编译器有关。 头文件float.h定义了常量名FLT_MAX,DBL_MAX和LDBL_MAX,分别用来表示float,double long和double类型所能存储的最大值,而FLT_MIN,DBL_MIN和LDBL_MIN则分别表示它们所能存储的最小值。,第25页 共62页,2.3.4 实数在机内的表示形式,实型量在机内的表示形式,第26页 共62页,2.3.5 字符常量,转义字符及其含义,第2

16、7页 共62页,2.3.6 字符串常量,字符常量由单引号括起来,字符串常量由双引号括起来。 字符常量只能表示单个字符,字符串常量则可以含一个或多个字符。 可以把一个字符常量赋予一个字符变量(详见2.4.5节),但不能把一个字符串常量赋予一个字符变量。 通常情况下,字符串存储于字符数组中,这也是C语言没有提供字符串类型的原因。,第28页 共62页,存储时,字符串常量占的内存字节数等于字符串常量中的字符个数加1。增加的一个字节用来存放空字符“0”(ASCII码为0),它是字符串结束的标志。也就是说,在存储一个字符串时,编译器会自动在字符串的末尾添加一个字符串结束标志“0”。 当字符串常量出现在表达式中时,表达式所使用的值是该字符串的存储地址而不是字符串本身。事实上,程序每次对字符串的引用,系统会自动生成一个“指向字符的指针”,该指针的值就是所引用的字符串的存储地址。 ANSI C声明,如果对一个字符

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

最新文档


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

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