C语言程序设计第三章数据类型、运算符和表达式.ppt
《C语言程序设计第三章数据类型、运算符和表达式.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计第三章数据类型、运算符和表达式.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 C程序设计程序设计主讲人:袁丽主讲人:袁丽燕大里仁基础教学部第三章:数据类型第三章:数据类型 运算符和表达式运算符和表达式1 C C语言的基本元素语言的基本元素2 数据类型数据类型3 常量和变量常量和变量4 变量赋初值变量赋初值5 不同类型数据间的混合运算不同类型数据间的混合运算6 几种基本运算符及其表达式几种基本运算符及其表达式1 1、C C语言的基本元素:语言的基本元素:一、字符集一、字符集C C语言中使用的基本符号有如下五种:语言中使用的基本符号有如下五种:(1 1)大写字母:)大写字母:A A Z Z(2 2)小写字母:)小写字母:a a z z(3 3)阿拉伯数字:)阿拉伯数字:0
2、 0 9 9(4 4)下划线:)下划线:(5 5)标点符号和运算符)标点符号和运算符:二、标识符二、标识符用来标记常量、变量、函数以及文件名字的字符序列。用来标记常量、变量、函数以及文件名字的字符序列。标识符的构成规则:标识符的构成规则:u以字母(大小写皆可)或下划线开头;以字母(大小写皆可)或下划线开头;u随后可跟若干个(包括随后可跟若干个(包括0 0个)字母、数字、下划线;个)字母、数字、下划线;u标识符的长度各个系统不同,最好不要超过标识符的长度各个系统不同,最好不要超过8 8个字符;个字符;注意注意:区分大小写。:区分大小写。sumsum,SumSum是两个标识符。是两个标识符。系统保
3、留字三、关键字三、关键字 也称也称“保留字保留字”。它是。它是C C语言中具有特定含义、专门用作语言语言中具有特定含义、专门用作语言特定成分的一类标识符。特定成分的一类标识符。ANSIANSI推荐的推荐的C C语言的关键字是语言的关键字是3232个(个(Turbo CTurbo C另扩展了另扩展了1111个)个)如:如:main main、int int、charchar、floatfloat、definedefine等。等。注意注意:所有的关键字都有固定的意义,不能用作其他;:所有的关键字都有固定的意义,不能用作其他;所有的关键字都必须小写;所有的关键字都必须小写;如:如:elseelse与
4、与ELSEELSE代表不同含义:代表不同含义:elseelse是关键字,是关键字,ELSEELSE是用户定义是用户定义 的标识符。的标识符。2 2、数据类型:、数据类型:算法处理的对象是数据,而数据又以某种特定的形式存在。算法处理的对象是数据,而数据又以某种特定的形式存在。所谓数据的组织形式也就是数据结构,所谓数据的组织形式也就是数据结构,C C语言的数据结构是以语言的数据结构是以数据类型形式出现。数据类型形式出现。所谓所谓类型类型,就是对数据分配存储单元的安排,包括存储单,就是对数据分配存储单元的安排,包括存储单元的长度元的长度(占多少字节占多少字节)以及数据的存储形式以及数据的存储形式 不
5、同的类型分配不同的长度和存储形式不同的类型分配不同的长度和存储形式C C语言允许使用的数据类型语言允许使用的数据类型:数据类型的描述确定了数据在内存所占的空间大小,也确定了数据类型的描述确定了数据在内存所占的空间大小,也确定了其表示范围,以及规定数据所能进行的操作。其表示范围,以及规定数据所能进行的操作。基本数据类型基本数据类型最主要的特点是,其值不可以再分解为其它类型。最主要的特点是,其值不可以再分解为其它类型。也就是说,基本数据类型是自我说明的。也就是说,基本数据类型是自我说明的。构造数据类型构造数据类型:构造数据类型是根据已定义的一个或多个数:构造数据类型是根据已定义的一个或多个数据类型
6、用构造的方法来定义的。也就是说,一个构造类型的值据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个可以分解成若干个“成员成员”或或“元素元素”。每个。每个“成员成员”都是一都是一个基本数据类型或又是一个构造类型。个基本数据类型或又是一个构造类型。指针类型指针类型:指针是一种特殊的,同时又是具有重要作用的数据:指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个变量在内存储器中的地址。虽然指针类型。其值用来表示某个变量在内存储器中的地址。虽然指针变量的取值类似于整型量,但这是两个类型完全不同的量,因此变量的取值类似于整型量,但这是两个类型完全不同的量,因此不能混
7、为一谈。不能混为一谈。空类型空类型:在调用函数值时,通常应向调用者返回一个函数:在调用函数值时,通常应向调用者返回一个函数值。这个返回的函数值是具有一定的数据类型的,应在函值。这个返回的函数值是具有一定的数据类型的,应在函数定义及函数说明中给以说明数定义及函数说明中给以说明。例如在例题中给出的例如在例题中给出的maxmax函数定义中,函数头为:函数定义中,函数头为:int max(int a,int b);int max(int a,int b);其中其中“int int”类型说明符即表示该函数的类型说明符即表示该函数的返回值为整型量。但是,也有一类函数,调用后并不需要返回值为整型量。但是,也
8、有一类函数,调用后并不需要向调用者返回函数值,这种函数可以定义为向调用者返回函数值,这种函数可以定义为“空类型空类型”。其类型说明符为其类型说明符为voidvoid。(1 1)常量常量:在程序运行过程中,其值在程序运行过程中,其值不能被改变的量不能被改变的量n整型常量整型常量:如如10001000,1234512345,0 0,-345-3453 3、常量和变量:、常量和变量:数据有两种表现形式:常量和变量数据有两种表现形式:常量和变量它们可与数据类型结合起来分类。它们可与数据类型结合起来分类。整型常量就是整常数。在语言中,使用的整常数有八进制、整型常量就是整常数。在语言中,使用的整常数有八进
9、制、十六进制和十进制三种。十六进制和十进制三种。11十进制整常数:十进制整常数没有前缀。其数码为十进制整常数:十进制整常数没有前缀。其数码为0 09 9。以下各数是合法的十进制整常数:以下各数是合法的十进制整常数:237 237、-568-568、6553565535、16271627;以下各数不是合法的十进制整常数:以下各数不是合法的十进制整常数:023(023(不能有前导不能有前导0)0)、23D(23D(含有非十进制数码含有非十进制数码)。22八进制整常数:八进制整常数必须以八进制整常数:八进制整常数必须以0 0开头,即以开头,即以0 0作为八进制数的前缀。作为八进制数的前缀。数码取值为
10、数码取值为0 07 7。八进制数通常是无符号数。八进制数通常是无符号数。以下各数是合法的八进制数:以下各数是合法的八进制数:015(015(十进制为十进制为13)13)、0101(0101(十进制为十进制为65)65)、0177777(0177777(十进制为十进制为65535)65535);以下各数不是合法的八进制数:以下各数不是合法的八进制数:256(256(无前缀无前缀0)0)、03A2(03A2(包含了非八进制数码包含了非八进制数码)、-0127(-0127(出现了负号出现了负号)。33十六进制整常数:十六进制整常数的前缀为十六进制整常数:十六进制整常数的前缀为0X0X或或0 x0 x
11、。其数码取值为其数码取值为0909,AFAF或或afaf。以下各数是合法的十六进制整常数:以下各数是合法的十六进制整常数:0X2A(0X2A(十进制为十进制为42)42)、0XA0(0XA0(十进制为十进制为160)160)、0XFFFF(0XFFFF(十进制为十进制为65535)65535);以下各数不是合法的十六进制整常数:以下各数不是合法的十六进制整常数:5A(5A(无前缀无前缀0X)0X)、0X3H(0X3H(含有非十六进制数码含有非十六进制数码)。n实型常量实型常量:实型也称为浮点型。实型常量也称为实数或者浮点实型也称为浮点型。实型常量也称为实数或者浮点数。在语言中,实数只采用十进制
12、。它有数。在语言中,实数只采用十进制。它有两两种形式:十进种形式:十进制小数形式,指数形式。制小数形式,指数形式。1 1十进制数形式:由数码十进制数形式:由数码0 90 9和小数点组成。和小数点组成。例如:例如:0.00.0、25.025.0、5.7895.789、0.130.13、5.05.0、300.300.、-267.8230-267.8230等均为合法的实数。注等均为合法的实数。注意,必须有小数点。意,必须有小数点。2 2指数形式:由十进制数,加阶码标志指数形式:由十进制数,加阶码标志“e e”或或“E E”以及阶码(只能为整以及阶码(只能为整数,可以带符号)组成。数,可以带符号)组成
13、。其一般形式为:其一般形式为:a E n a E n(a a为十进制数,为十进制数,n n为十进制整数)其值为为十进制整数)其值为 a*10 a*10n n。如:如:2.1E5(2.1E5(等于等于2.1*102.1*105 5)3.7E-2(3.7E-2(等于等于3.7*103.7*10-2-2)n字符常量字符常量:字符常量是用单引号括起来的一个字符。字符常量是用单引号括起来的一个字符。例如:例如:a a、bb、=、+、?都是合法字符常量。都是合法字符常量。在语言中,字符常量有以下特点:在语言中,字符常量有以下特点:字符常量只能用单引号括起来,不能用双引号或其它括号。字符常量只能用单引号括起
14、来,不能用双引号或其它括号。字符常量只能是单个字符,不能是字符串。字符常量只能是单个字符,不能是字符串。字符可以是字符集中任意字符。但数字被定义为字符型之字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。如后就不能参与数值运算。如55和和5 5 是不同的。是不同的。55是字符常量,是字符常量,不能参与运算。不能参与运算。n转义字符转义字符:转义字符是一种特殊的字符常量。转义字符以反斜线转义字符是一种特殊的字符常量。转义字符以反斜线开头,开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称原有的意
15、义,故称“转义转义”字符。字符。例如,在前面各例题例如,在前面各例题printfprintf函数的格式串中用到的函数的格式串中用到的“nn”就是一个转义字就是一个转义字符,其意义是符,其意义是“回车换行回车换行”。转义字符主要用来表示那些用一般字符不便。转义字符主要用来表示那些用一般字符不便于表示的控制代码。于表示的控制代码。n字符串常量字符串常量:字符串常量是由一对双引号括起的字符序列。字符串常量是由一对双引号括起的字符序列。例如:例如:CHINA CHINA,“C program”“C program”等都是合法的字符串常量。等都是合法的字符串常量。字符串常量和字符常量是不同的量。它们之间
16、主要有以下区别:字符串常量和字符常量是不同的量。它们之间主要有以下区别:字符常量由单引号括起来,字符串常量由双引号括起来。字符常量由单引号括起来,字符串常量由双引号括起来。字符常量只能是单个字符,字符串常量则可以含一个或多个字符。字符常量只能是单个字符,字符串常量则可以含一个或多个字符。可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。符变量。在语言中没有相应的字符串变量。但是可以用一个字符数组来存放一个字符在语言中没有相应的字符串变量。但是可以用一个字符数组来存放一个字符串常量。串常量。字符常量占一
17、个字节的内存空间。字符串常量占的内存字节数等于字符串中字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加字节数加1 1。增加的一个字节中存放字符。增加的一个字节中存放字符0(ASCII0(ASCII码为码为0)0)。这是字符串结束的。这是字符串结束的标志。标志。例如:例如:字符串字符串“hello”“hello”在内存中所占的字节为:在内存中所占的字节为:hell0o 字符常量字符常量a a和字符串常量和字符串常量aa虽然都只有一个字符,但在内存中的虽然都只有一个字符,但在内存中的情况是不同的。情况是不同的。a a在内存中占一个字节,可表示为:在内存中占一个字节,可表示
18、为:aaa在内存中占二个字节,可表示为:在内存中占二个字节,可表示为:a0n符号常量符号常量:用一个标识符代表的一个常量:用一个标识符代表的一个常量#define#define 标识符标识符 常量常量 符号常量在使用之前必须先定义,其一般形式为:符号常量在使用之前必须先定义,其一般形式为:其中其中#define#define也是一条预处理命令(预处理命令都以也是一条预处理命令(预处理命令都以#开头),开头),称为宏定义命令称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。定义,以后在程序
19、中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母习惯上符号常量的标识符用大写字母.宏定义命令(放程序头部)宏定义命令(放程序头部)(2 2)变量变量:在程序运行期间,变量的值是可以改变的在程序运行期间,变量的值是可以改变的n变量用标识符(变量名)表示,在内存中占一定的存储单元变量用标识符(变量名)表示,在内存中占一定的存储单元n变量必须变量必须先定义先定义,后使用后使用n定义定义变量变量时指定该变量的时指定该变量的名字名字和和类型类型 (类型符(类型符 标识符)标识符)n变量名变量名和和变量值变量值是是两个不同的概念两个不同的概念n变量名实际上是以一个名字代表的一个变
20、量名实际上是以一个名字代表的一个存储地址存储地址n从变量中取值,实际上是通过变量名找到相应的内存地址,从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据从该存储单元中读取数据分别定义了整型,分别定义了整型,字符型,字符型,单精度,单精度,双精度类型的变量双精度类型的变量在书写变量说明时,应注意以下几点:在书写变量说明时,应注意以下几点:1.1.允许在一个类型说明符后,说明多个相同类型的变量。各变量允许在一个类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。间隔。2
21、.2.最后一个变量名之后必须以最后一个变量名之后必须以“;”号结尾。号结尾。3.3.变量说明必须放在变量使用之前。一般放在函数体的开头部分。变量说明必须放在变量使用之前。一般放在函数体的开头部分。m100变量名变量值存储单元n整型变整型变量量:1 1)整型数据在内存中的存放形式:)整型数据在内存中的存放形式:数值是以补码表示的:数值是以补码表示的:正数的补码和原码相同;正数的补码和原码相同;负数的补码:将该数的绝对值的二进制形式按位取反再加负数的补码:将该数的绝对值的二进制形式按位取反再加1 1。2 2)整型变量的分类)整型变量的分类基本型:类型说明符为基本型:类型说明符为intint,在内存
22、中占,在内存中占2 2个字节。个字节。短整量:类型说明符为短整量:类型说明符为short intshort int或或shortshort。所占字节和取值范围均与基本型相同。所占字节和取值范围均与基本型相同。长整型:类型说明符为长整型:类型说明符为long intlong int或或longlong,在内存中占,在内存中占4 4个字节。个字节。无符号型:类型说明符为无符号型:类型说明符为unsignedunsigned。无符号型又可与上述三种类型匹配而构成:无符号型又可与上述三种类型匹配而构成:1)1)无符号基本型:类型说明符为无符号基本型:类型说明符为unsigned intunsigned
23、 int或或unsignedunsigned。2)2)无符号短整型:类型说明符为无符号短整型:类型说明符为unsigned shortunsigned short。3)3)无符号长整型:类型说明符为无符号长整型:类型说明符为unsigned longunsigned long。各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。但由于省去了符号位,故不能表示负数。n实型变实型变量量:1 1)实型数据在内存中的存放形式:)实型数据在内存中的存放形式:实型数据按指数形式存储。实型数据按指数形
24、式存储。实数实数3.141593.14159在内存中的存放形式如下在内存中的存放形式如下:2 2)实型变量的分类)实型变量的分类小数部分占的位(小数部分占的位(bitbit)数愈多,数的有效数字愈多,精度愈高。)数愈多,数的有效数字愈多,精度愈高。指数部分占的位数愈多,则能表示的数值范围愈大。指数部分占的位数愈多,则能表示的数值范围愈大。实型变量分为:单精度(实型变量分为:单精度(floatfloat型)、双精度(型)、双精度(doubledouble型)和长双精度型)和长双精度(long doublelong double型)三类。型)三类。例如:例如:float x,y;(x,yfloat
25、 x,y;(x,y为单精度实型量为单精度实型量)double a,b,c;(a,b,cdouble a,b,c;(a,b,c为双精度实型量为双精度实型量)n字符型变字符型变量量:字符变量用来存储字符常量,即单个字符。字符变量用来存储字符常量,即单个字符。字符变量的类型说明符是字符变量的类型说明符是charchar。字符变量类型定义的格式和书写。字符变量类型定义的格式和书写规则都与整型变量相同。例如:规则都与整型变量相同。例如:char a,b;char a,b;1 1)字符型数据在内存中的存放形式:)字符型数据在内存中的存放形式:每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。每个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第三 数据类型 运算 表达式
限制150内