第2章基本数据类型、运算符和表达式.ppt
《第2章基本数据类型、运算符和表达式.ppt》由会员分享,可在线阅读,更多相关《第2章基本数据类型、运算符和表达式.ppt(71页珍藏版)》请在三一办公上搜索。
1、2023/8/6,第2章 基本数据类型、运算符和表达式,1,C语言程序设计,第2章 基本数据类型、运算符和表达式,2023/8/6,第2章 基本数据类型、运算符和表达式,2,【本章概要】,本章主要介绍C语言的基本数据类型、常量与变量、运算符及表达式,以及C语言提供的常用库函数。,2023/8/6,第2章 基本数据类型、运算符和表达式,3,2.1 数据类型历史和特点,2.2 变量和常量,2.3 运算符和表达式,第2章 基本数据类型、运算符和表达式,2.4 数据类型转换,2.5 数据的输入输出,2.6 内部函数,2023/8/6,第2章 基本数据类型、运算符和表达式,4,计算机中处理的数据包括数字
2、、文字、声音、图形、图像等各种形式。数据类型是按数据的性质、表示形式、占据存储空间的多少、构造特点来划分的。,2.1 数据类型,为了更好地对数据进行存储和处理,语言中的数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类,2023/8/6,第2章 基本数据类型、运算符和表达式,5,2.1 数据类型,2023/8/6,第2章 基本数据类型、运算符和表达式,6,基本整型 int短整型 short或short int长整型 long或long int无符号基本整型 unsigned int无符号短整型 unsigned short或unsigned short int无符号长整型 un
3、signed long或unsigned long int,2.1.1 整型,注意:c语言没有规定各种整数类型的表示范围,只是规定了long类型的表示范围不小于int,但也允许它们表示范围相同。,2023/8/6,第2章 基本数据类型、运算符和表达式,7,2.1.2 实型,实型数据又称浮点型数据。float,单精度浮点数类型,简称浮点类型;double,双精度浮点数类型,简称双精度类型;long double,长双精度类型。,所有整数类型和实数类型统称为算术类型。,2023/8/6,第2章 基本数据类型、运算符和表达式,8,字符类型的数据即通常的字符。,字符类型的数据在内存中存储的是它的ASC
4、II码值,一个字符通常占用一个字节的内存空间。,2.1.3字符型,2023/8/6,第2章 基本数据类型、运算符和表达式,9,ASCII码字符的取值范围是0127,既可以用char类型表示,也可以用unsigned char类型表示;在128255范围内的扩展ASCII码字符只能用unsigned char类型表示。,C语言规定字符类型与整型基本一致,分为有符号和无符号两种类型。,2.1.3字符型,2023/8/6,第2章 基本数据类型、运算符和表达式,10,注意:C语言类型的长度完全由编译器决定,char 通常被定义成 8 位宽;int 通常被定义成16 位或32 位宽(或更高),它取决于平
5、台,C语言规定:long=int=short=char.(这里的=指类型的宽度大于等于)。,2.1.3字符型,2023/8/6,第2章 基本数据类型、运算符和表达式,11,2.1 数据类型历史和特点,2.3 运算符和表达式,第2章 基本数据类型、运算符和表达式,2.4 数据类型转换,2.5 数据的输入输出,2.6 内部函数,2.2 变量和常量,2023/8/6,第2章 基本数据类型、运算符和表达式,12,对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。与数据类型结合起来分类,分为整型常量、整型变量、浮点常量、浮点变
6、量、字符常量、字符变量、枚举常量、枚举变量。在程序中,常量是可以不经说明而直接引用的,而变量则必须先定义后使用。,2.2 变量和常量,2023/8/6,第2章 基本数据类型、运算符和表达式,13,变量名代表该变量的存储单元及其存放的值,系统为不同类型的变量在内存中开辟不同的存储单元,以便存放相应类型的值;不同类型的变量存放数据的方法也不相同。系统还根据变量的类型检查该变量所进行的运算是否合法,例如只有整型变量和整数才能参与求余(%)运算。,2.2.1 变量,2023/8/6,第2章 基本数据类型、运算符和表达式,14,2.2.1 变量,1.变量的定义和赋值C语言要求程序中使用的每个变量都必须先
7、定义,然后才能使用。定义变量需要用变量定义语句进行,其形式为:类型 变量名=初值,变量名=初值,;,2023/8/6,第2章 基本数据类型、运算符和表达式,15,2.2.1 变量,2.变量中数据的存储C语言中无符号整数的存储相对简单,存储单元的每个二进制位存放的0或1均表示数。有符号整数则用补码表示 实型数据是按指数形式存储的。用一个字节(8位二进制信息)存储字符类型数据。注意:可以把字符型数据看成是整型数据。语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。,2023/8/6,第2章 基本数据类型、运算符和表达式,16
8、,2.2.2 常量,常量可分为直接常量和符号常量,其中直接常量包括:整型常量、实型常量、字符型常量、字符串常量。,2023/8/6,第2章 基本数据类型、运算符和表达式,17,2.2.2 常量,1.整型常量整型常量有三种表示方法:(1)十进制整数:如154、565、-6523。(2)八进制整数:以0开头的数是八进制数。(3)十六进制整数:以0 x开头的数是十六进制数。在上述方法表示的整数后面附一个字母l或L作后缀,即可表示该数据的类型是长整型的。注意:长整型数据和普通整型数据的区别。,2023/8/6,第2章 基本数据类型、运算符和表达式,18,2.2.2 常量,2.实型常量在C语言中,把带小
9、数的数称为实数或浮点数。实型常量只能用十进制形式表示,不能用八进制和十六进制形式表示。实型常量有两种表示方法:小数形式:由数字和小数点组成,如3.1415926、-0.12、.4、3.等都是实数。(2)指数形式:如1.23e5或12.3E4都代表1.23x105。注意:字母e(或E)之前必须有数字,且e后面指数必须为整数,如e3、2.1e3.2、e等都不是合法的指数形式。,2023/8/6,第2章 基本数据类型、运算符和表达式,19,2.2.2 常量,3.字符常量字符型常量是由一对单引号括起来的单个字符构成,在语言中,字符常量有以下特点:(1)字符常量只能用单引号括起来,不能用双引号或其它括号
10、。(2)字符常量只能是单个字符,不能是字符串。(3)字符可以是字符集中任意字符。一个字符型常量的值是该字符集中对应的ASCII编码值。显然5和5 是不同的。,2023/8/6,第2章 基本数据类型、运算符和表达式,20,2.2.2 常量,表2-3 转义字符表,2023/8/6,第2章 基本数据类型、运算符和表达式,21,4.字符串常量C语言中没有专门的字符串类型的变量,但有字符串常量。字符串常量由一对双引号括起来的字符序列组成,如“abc”、“a”等都是字符串常量。双引号仅起定界符的作用。字符串常量与字符常量的区别:(1)字符常量由单引号括起来,字符串常量由双引号括起来。(2)字符常量占一个字
11、节的内存空间。字符串常量在内存中存储时由系统自动在存储的所有字符尾部添加串结束标记0,所以,字符串常量占的内存字节数等于字符串中字符所占的字节数加1。,2.2.2 常量,2023/8/6,第2章 基本数据类型、运算符和表达式,22,5.符号常量符号常量就是使用符号代表常量。C语言中允许用标识符定义一个常量,这种常量定义在C语言中被称之为“宏定义”,其一般形式为:#define 标识符 常量其中#define是一条预处理命令,称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上,符号常量的标识符用大写字母,变量标识符用小写字母
12、,以示区别。,2.2.2 常量,2023/8/6,第2章 基本数据类型、运算符和表达式,23,2.1 数据类型历史和特点,2.2 变量和常量,第2章 基本数据类型、运算符和表达式,2.4 数据类型转换,2.5 数据的输入输出,2.6 内部函数,2.3 运算符和表达式,2023/8/6,第2章 基本数据类型、运算符和表达式,24,2.3.1 运算符,1.基本的算术运算符C语言中基本的算术运算符共有5种:+(加),-(减),*(乘),/(除),%(取模,或称求余运算符)C语言规定:(1)%运算符仅用于整型变量或整型常量的运算,a%b的结果为a除以b的余数,余数的符号与被除数相同,如:7%3的结果为
13、1;7%-3的结果为1;-7%3的结果为-1。(2)+、-、*、/运算符的两个操作数既可以是整数,也可以是实数。当两个操作数均是整数时,结果仍是整数;若参加运算的两个操作数中有一个是实数,则结果为double型,因为所有实数都按double型进行运算。(3)当对两个整型的数据相除时结果为整数。,2023/8/6,第2章 基本数据类型、运算符和表达式,25,2.3.1 运算符,2.自增、自减运算符 自增运算符+和自减运算符-是C语言中两个较为独特的单目运算符,具有右结合性。它们既可以放在操作数前,也可以放在操作数后,并且操作对象只能是变量,不能是常量或表达式。如5+,+(a+b)等都是错误的。自
14、增自减运算符的作用是将操作对象的值增加1或减去1。如:i+,i-/*表示在使用i值之后将i的值加(减)1*/+i,-i/*表示在使用i值之前将i的值加(减)1*/,2023/8/6,第2章 基本数据类型、运算符和表达式,26,2.3.1 运算符,3.赋值运算符C语言中,赋值被认为是一种运算,由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。其形式是:赋值运算符为“=”,它的作用是将赋值运算符右边表达式或常量的值赋给其左边的变量。赋值表达式的值就是被赋值的变量的值。例如:a=6这个赋值表达式的值是6(变量a的值也是6)。赋值表达式的值也可以再赋给其它变量,如:a=(b=3+5),括
15、号内的b=3+5是一个赋值表达式,其值为8,所以a的值为8,整个表达式的值也为8。,2023/8/6,第2章 基本数据类型、运算符和表达式,27,2.3.1 运算符,4.复合赋值运算符C语言允许在赋值运算符“=”之前加上其他运算符以构成复合的赋值运算符。例如:a+=5;等价于a=a+5;a*=b+5;等价于 a=a*(b+5);凡是双目运算符,都可以和赋值运算符一起组合成复合的赋值运算符。在C语言中,可以使用的复合赋值运算符有:+=,-=,*=,/=,%=,=,&=,=,|=,2023/8/6,第2章 基本数据类型、运算符和表达式,28,2.3.1 运算符,5.关系运算符关系运算实际上就是比较
16、运算。比较两个量的运算符就称为关系运算符。在C语言中为我们提供了6种关系运算符:大于=大于或等于=等于!=不等于 关系运算符都是双目运算符,要求两个操作数是同一种数据类型,其结果为逻辑值。即关系成立时,其值为真,按C语言的习惯,用非0值(一般用1)表示;关系不成立时,其值为假,用0表示。,2023/8/6,第2章 基本数据类型、运算符和表达式,29,6.逻辑运算符语言中为我们提供了三种逻辑运算符,分别是:&与运算|或运算!非运算其中,与运算符&和或运算符|均为双目运算符,非运算符!为单目运算符。例如:a&b 当a,b都为真时,结果为真a|b 当a,b都为假时,结果为假!a 当a为真时,结果为假
17、;当a为假时,结果为真,2.3.1 运算符,2023/8/6,第2章 基本数据类型、运算符和表达式,30,2.3.1 运算符,7.位运算位运算符是以单独的二进制位为操作对象的运算。也就是说,其操作数是二进制数。C语言中提供的位运算符有:按位与(&)、按位或(|)、按位异或()、按位取反()、左移(),,2023/8/6,第2章 基本数据类型、运算符和表达式,31,2.3.1 运算符,8.求字节数运算符 sizeof是C语言的一种单目操作符,并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。sizeof可以用于数据类型和变量。关于siz
18、eof的结果:操作数具有类型char、unsignedchar或signedchar,其结果等于1。因为ANSIC正式规定字符类型为1字节。int、unsignedint、shortint、unsignedshort、longint、unsignedlong、float、double、longdouble类型的sizeof在ANSIC中没有具体规定,大小依赖于实现,一般可能分别为2、2、2、2、4、4、4、8、10。,2023/8/6,第2章 基本数据类型、运算符和表达式,32,2.3.1 运算符,9.逗号运算符用逗号运算符可以将两个表达式连接起来,所形成的就是逗号表达式,其一般形式为:表达式
19、1,表达式2逗号表达式的求值过程是:先求表达式1的值,再求表达式2的值,表达式2的值就是整个逗号表达式的值。逗号表达式的一般形式可以扩展为:表达式1,表达式2,表达式3,表达式n表达式n的值为整个表达式的值。,2023/8/6,第2章 基本数据类型、运算符和表达式,33,2.3.1 运算符,10.条件运算符条件运算符是三目运算符,要求有3个操作对象,并且三个操作对象都是表达式。条件表达式的其一般形式为:表达式1?表达式2:表达式3 条件运算的求值规则为:计算表达式1的值,若表达式1的值为真,则以表达式2的值作为整个条件表达式的值,否则以表达式3的值作为整个条件表达式的值。注意:(1)条件表达式
20、中,表达式1通常为关系或逻辑表达式,表达式2、3的类型可以是数值表达式、赋值表达式、函数表达式或条件表达式。(2)条件表达式的结果类型:表达式2和表达式3中的较高者。,2023/8/6,第2章 基本数据类型、运算符和表达式,34,2.3.2 表达式,表达式由运算符和操作数构成。操作数可以是常量和变量。表达式的类型就是表达式计算结果的类型。混合于同一表达式中的不同类型常量及变量,应均变换为同一类型的量。C语言的编译程序将所有操作数变换为与最大类型操作数同类型。,2023/8/6,第2章 基本数据类型、运算符和表达式,35,2.3.2 表达式,C语言规定了运算符的优先级和结合性。在表达式求值时,先
21、按运算符的优先级别高低次序执行,例如先乘除后加减。若一个运算对象两侧的运算符的优先级别相同,如a-b+c,则按规定的“结合方向”处理。C规定了各种运算符的结合方向。算术运算符的结合方向为“自左至右”,又成为左结合性,即先左后右,因此b先与减号结合,执行a-b的运算,再执行加c的运算。以后可以看到有些运算符的结合方向为“自右至左”,即右结合性。关系运算符的优先级低于算术运算符,关系运算符中、=、=优先级相同;!=和=的优先级相同,但低于前四种。关系运算符的结合性均为左结合,若有多个关系运算同时进行时,先按优先级次序运算,优先级相同时从左向右计算。,2023/8/6,第2章 基本数据类型、运算符和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 数据类型 运算 表达式

链接地址:https://www.31ppt.com/p-5650710.html