第3章数据类型运算符与表达式jqj.ppt
《第3章数据类型运算符与表达式jqj.ppt》由会员分享,可在线阅读,更多相关《第3章数据类型运算符与表达式jqj.ppt(127页珍藏版)》请在三一办公上搜索。
1、1,第 3 章,数据类型、运算符与表达式,2,3.1 C语言的数据类型,3,1.什么是数据类型,数据类型指数据在加工计算中的特征,是数据的内在表现形式。,例如:两个人的年龄和工资都是数值型,可以相加减。两人的姓名是字符型,不能相加减。,4,2.C语言的数据类型,5,说明:,整型和实型合称为数值型。,只能取确定的几个数据值中的某一个称为 枚举型。,数值型、字符型、枚举型合称为基本类型。,由若干个相关的基本数据类型组合在一起构 成的复杂数据类型称为构造类型。,6,用来表示内存地址的类型称为指针型。,没有具体数据值的类型称为空类型。,某种类型的数据在内存中所占的字节数称为 该数据的“数据长度”。,7
2、,在程序中,对所用到的数据均须指定其数据类型。数据有常量与变量之分,它们分别属于以上这些类型。,例如:整型数据包括整型常量和整型变量,8,3.2 常量与变量,9,1.常量和符号常量,常量又称常数,是在程序运行过程中其值 不可改变的数据。,C的常量有:整型常量 实型常量 字符常量 字符串常量,10,例如:456 为整型常量 1.23456e2 为实型常量 A 为字符常量“a1b2c3”为字符串常量,常量的类型不需要事先定义和说明。常量的类型由书写方法自动默认。,11,常量又分为直接常量和符号常量。,直接常量:从其字面形式即可判别。,符号常量:用一个标识符代表一个常量。,12,#define PR
3、ICE 30#include void main()int num,total;num=10;total=num*PRICE;printf(“total=%dn”,total);,例3.1 符号常量的使用,运行结果:total=300,13,说明:,#define命令行定义PRICE代表常量30,此时PRICE被称为符号常量。,符号常量名用大写表示。定义符号常量名应考虑“见名知意”。,14,使用符号常量的好处:,含义清晰:从PRICE就可知道它代表价格。,一改全改:若价格调整为35,只需改变定义行:#define PRICE 35不需在程序中多处修改。,15,2.变量,变量代表内存中具有特定属
4、性的一个存储单元,变量用来存放数据,也就是变量的值。在程序运行期间,这些值是可变的。,变量都有一个名字,叫做变量名,以便在程序 中被引用。,16,变量名和变量值是两个不同的概念,17,变量名的作用实际上是以一个名字对应一个 地址。,程序编译连接时由编译系统给每一个变量名 分配对应的内存地址。,从变量中取值,实际上是通过变量名找到相 应的内存地址,从该存储单元中读取数据。,18,标识符:对变量、符号常量、函数名、数组名 类型名等数据对象命名的有效字符序列。,标识符的命名规则:由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。,编译系统将大写字符和小写字符认为是两个 不同的字符。标
5、识符的长度一般不超过8个字符。选择标识符应“见名知意”。,19,例如:不合法的标识符:M.D.John¥123#33 3D64 ab,例如:合法的标识符:sum average _total Class day month Student_name lotus_1_2_3 BASIC li_ming,20,变量必须先定义,后使用。凡未被事先定 义的,系统不把它认作变量名。,每一个变量被指定为一个确定类型,编译 时就能为其分配相应的存储单元。,例如:int a,b,例如:int a,b 编译时为a,b各分配2个字节,并按整数方式存储数据。,21,指定每一变量属于一个类型,便于在编译时检查程序中对
6、该变量进行的运算是否合法。,例如:整型变量a和b,可以进行求余运算:a%b 若将a和b指定为实型变量,则不允 许进行求余运算,编译时提示出错 信息。,22,3.3 整型数据,23,十进制整数:由数字09组成的数字串,多位数 时左边第一个数字不能为0。例如:38-500+39是合法的,1.整型常量的表示方法,整型常量即整常数。整常数可用以下3种形式表示:,24,八进制整数:由数字07组成的数字串,第一 个数字必须为0(前导零),它 是八进制数的标志。例如:0137 027+013024 是合法的 0128是非法的,25,十六进制整数:由数字09和字母af(或)组成的符号串,符 号串必须以 0 x
7、或0X(十六进 制的前缀)开头。例如:0 x13a0 xc320 xff0 xb8000 xdc 是合法的 013ax13a13a是非法的,26,2.整型变量,整型数据在内存中的存放形式:,如果定义了一个整型变量 i int i;i=10;则Turbo C 2.0为一个整型变量在内存中分配 2 个字节的存储单元。数据在内存中实际以二进制形式存放。而十进制整数10的二进制形式为1010。,27,则十进制整数10在内存中存放形式图:,28,整型变量的分类,整型变量的基本类型符为 int,根据数值范围又可分为以下3类整型变量:基本整型 int一个 取值范围是:-3276832767短整型 short
8、 int 或 short长整型 long int 或 long,29,在存放有符号整数的存储单元中,左边第1位是符号位。该位为0,表示数值为正;该位为1,表示数值为负。而实际应用中,有些数据总是正数(例如序号、年龄、库存量等)。为了充分利用内存,可将原来存储符号位的左边第1位也用来存储数据,扩大了数据的取值范围。为此,根据需要可将变量定义为“无符号”类型。,30,因此,共有6种整数类型:有符号的基本整型 signed int无符号的基本整型 unsigned int有符号的短整型 signed short int 无符号的短整型 unsigned short int 有符号的长整型 signe
9、d long int 无符号的长整型 unsigned long int,31,1个无符号型整型变量中可存放的正数的范围比一般整型变量中正数的范围扩大1倍。,如果是有符号的,则存储单元中最高位是符号 位(0为正,1为负),如果是无符号的,则存储单元中全部二进位用 来存放数据本身,而不包括符号位。,32,0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,例如:int a;则变量a的取值范围:-32768 32767 unsigned int b;则变量b的取值范围:0 65535,有符号整型变量a 的最大值为32767
10、,符号位,有符号整型变量 a=32767,无符号整型变量b的最大值为65535,代表数据第1位,无符号整型变量 b=65535,33,P43 表3-1 给出用Turbo C/Turbo C+时整数类型的有关数据,34,整型变量的定义,C程序中所有用到的变量均须在程序中定义。变量的定义一般放在一个函数的开头的声明部分,例如:int a,b;unsigned short c,d;long c,f;,35,#include void main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d
11、);,例3.2 整型变量的定义与使用,运行结果:a+u=22,b+u=-14,36,3.整型常量的类型,整型变量有上述类型,整型常量也有上述类型,一个整常量后面加一个字母u或U,认为是unsigned int型。,一个整常量后面加一个字母l或L,认为是long int型常量,37,3.4 浮点型数据,38,1.浮点型常量的表示方法,浮点数就是实数,浮点数有两种表示形式:,十进制小数形式:由数字和小数点组成(且 必须有小数点)例如:123.45 1.789 123.0 0.0,39,指数形式:例如:123e3 123E3 均代表 123*10的3次方 注意:字母e(或E)之前必须有数字,且e后面
12、的指数必须为整数 例如:e3 2.1e3.5.e3 e 均不合法,40,一个浮点数可有多种指数表示形式 例如:123.456可表示为:123.456e0 12.3456e1 1.23456e2 0.123456e3 0.0123456e4 等 其中1.23456e2为规范化指数形式,41,2.浮点型变量,浮点型数据在内存中的存放形式,一个浮点型数据一般在内存中占4个字节(32位),浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。,42,例如:实数3.14159在内存中的存放形式 数符 小数部分 指数+.314159*10的1次方 此图是十进制示意图。实际是
13、用二进制数表示小数部分,用2的幂次表示指数部分。,+.314159 1,43,在4个字节中,用多少位表示小数部分,多少位表示指数部分,不同的C编译系统自定。,小数部分占的位数越多,数的有效位数就越多,精度就越高。,指数部分占的2位数越多,数值范围就越大。,44,P46 表3-2 Turbo C中浮点型数据分类表,浮点型变量的分类,单精度型 float双精度型 double长双精度型 long double,45,C编译系统将浮点型常量作为双精度处理 例如:float a a=2.45678*4523.65;先把2.45678和4523.65作为双精度 数,然后相乘,得到的乘积也是 一个双精度数
14、。最后取其前7位赋 给浮点型变量 a,3.浮点型常量的类型,46,如果在数的后面加字母f或F,则编译系统按单精度数处理。例如:1.56f 654.87F,47,3.5 字符型数据,48,P48表3-3 转义字符表,1.字符常量,字符常量是用单撇号括起来的一个字符 例如:A a 1 0 9%,转义字符常量:C允许的一种特殊形式的字符常量。以字符“”开头的字符序列,称为转义字符,将“”后面的字符转换成另外的意义 例如:n 代表一个换行符,是一个控制字符,在屏幕上不能显示,49,例3.5 转义字符的使用#include void main()printf(ab ct derftgn);printf(
15、htibbj kn);,50,2.字符变量,字符型变量用来存放字符常量,在一个字符变量中只能存放1个字符,而不是一个字符串。,字符变量的定义形式:char c1,c2;,字符变量的赋值:例如:c1=a;c2=b;,51,一个字符变量在内存中只占1个字节,52,例如:char c1,c2;c1=a;c2=b;a的ASCII代码为十进制数97 b的ASCII代码为十进制数98,3.字符数据在内存中的存储形式及使用方法,将一个字符常量放到一个字符变量中,实际上并 不是把该字符本身放到内存单元中去,而是将该 字符的ASCII代码放到存储单元中。,53,在内存中的存放形式如图:c1 c2 c1 c2,9
16、7,98,0 1 1 0 0 0 0 1,0 1 1 0 0 0 1 0,54,字符数据以ASCII码存储,所以它的存储形式 与整型类似,使得字符型数据与整型数据可以 通用。,字符数据既可以字符形式输出,也可以整数形 式输出。,可对字符数据进行算术运算,相当于对相应的 ASCII码进行算术运算,55,#include void main()char c1,c2;c1=97;c2=98;printf(%c%cn,c1,c2);printf(%d%dn,c1,c2);,例3.6 向字符变量赋予整数,56,#include void main()char c1,c2;c1=a;c2=b;c1=c1-
17、32;c2=c2-32;printf(%c%c,c1,c2);,例3.7 大小写字母的转换,运行结果:A B,57,不要将字符常量与字符串常量混淆 例如:a是字符常量“a”是字符串常量,4.字符串常量,一对双撇号括起来的字符序列称为字符串常量 例如:“How do you do”“$123.45”“CHINA”,58,字符 0 的ASCII码为0,是空操作字符,不引起任何控制动作,也不可显示。例如:“CHINA”,实际上在内存是占 6个字符:,C规定:在每一个字符串的结尾自动加一个 字符串结束标志 0,以便系统据此判断字符 串是否结束。,59,如果要将一个字符串存放在变量中以便保存,必须使用字
18、符数组,在第七章介绍,60,3.6 变量赋初值,61,允许在定义变量的同时给变量赋值,即初始化。,例如:int a=3;float f=3.56;char c=a,也可使被定义的变量一部分赋初值。,例如:int a,b,c=5;,62,如果对几个变量赋予同一个初值,应写成:int a=3,b=3,c=3;不能写成:int a=b=c=3,63,3.7 各类数值型数据间的 混合运算,64,数值型数据:整型、浮点型、字符型之间 可以混合运算,例如:10+a+1.5 8765.1234*b,在进行运算时,不同类型的数据要先转换 成同一类型,然后进行运算。,65,转换规则:P54 图3-10 横向:自
19、右向左转换 纵向:由低向高转换,66,例如:int i;float f;double d;long e;则表达式:10+a+i*f-d/e运算顺序:从左至右,上述类型转换是系统自动进行的,67,3.8 各种运算符,68,运算符的用途是描述对数据的各种运算。例如:+-*/,运算符分为:单目运算符 双目运算符 三目运算符 例如:-5,+X,X+Y,E1?E2:E3,69,C中运算符的种类:算术运算符:+-*/%关系运算符:=|&赋值运算符=复合赋值运算符:+=-=*=/=%=条件运算符:?,:逗号运算符:,指针运算符:*&求字节运算符:size of 强制类型转换运算符:(类型)分量运算符:下标运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据类型 运算 表达式 jqj
链接地址:https://www.31ppt.com/p-5900726.html