第二章基本数据类型运算符和表达式.PPT
《第二章基本数据类型运算符和表达式.PPT》由会员分享,可在线阅读,更多相关《第二章基本数据类型运算符和表达式.PPT(63页珍藏版)》请在三一文库上搜索。
1、2019年4月7日星期日,安徽理工大学计算机软件教研室,1,第二章 基本数据类型、运算符和表达式,2.1 数据类型 2.2 变量和常量 2.3 运算符和表达式 2.4 指针 2.5 typedef语句 2.6 应用举例,2019年4月7日星期日,安徽理工大学计算机软件教研室,2,程序中要对各种各样的数据进行描述和操作,用到的数据都必须指明其类型。数据类型的作用: 指出了应为数据分配的存储空间的大小 规定了数据所能进行的操作,2.1 数据类型,2019年4月7日星期日,安徽理工大学计算机软件教研室,3,2019年4月7日星期日,安徽理工大学计算机软件教研室,4,基本数据类型,C+语言的基本数据类
2、型: 数据类型 类型说明浮 占用字节 字符型 char 1个 短整数 short 2个 整型 int 4个 浮点型 float 4个 双精度型 double 8个,2019年4月7日星期日,安徽理工大学计算机软件教研室,5,数据在计算机中的存放,数据在计算机中采用二进制存放;一个字节8个二进制位,示意图如下:,数的表示范围:-2727-1(-128127) 显然,一个字节表示数的范围是有限的。要表示更大范围内的数,就要使用多个字节。,7,0,2019年4月7日星期日,安徽理工大学计算机软件教研室,6,整数的存储格式,字符型 短整型 短整数表示范围为:-215215-1(-3276832767)
3、 长整型 长整数表示范围为:-231231-1,7,0,15,8,7,0,31,24,23,16,15,8,7,0,2019年4月7日星期日,安徽理工大学计算机软件教研室,7,实数的表示,实数也称为浮点数,用于表示小数;有两种表示形式: 十进制形式:. 指数形式:.,一般浮点数的可以达到7位有效数字。例如1234.567。双精度浮点数的有效位数可以达到1516位。,尾数部分,指数部分,31,24,23,16,15,8,7,0,2019年4月7日星期日,安徽理工大学计算机软件教研室,8,程序运行过程中其值可变的量, 定义方式如下: 数据类型 变量名表 ; C/C+规定: 程序中所有变量必须先定义
4、后使用,可及时发现录入错误(如,定义的变量为data,而程序体中使用变量为date),同时还可限制非法运算(如:a%b , 若a,b为float类型则出错)。,C+中变量可随时使用,随时定义。,例如: int a, b; (定义变量a和b为整型) float x,y ; (定义变量x和y为单精度实型),2.2.1 变量,2.2 变量和常量,1.变量的定义,2019年4月7日星期日,安徽理工大学计算机软件教研室,9,变量必须先有确定的值后才能参与各种相应的操作,变量获取值的途径有三: 通过输入语句输入 (如:cina;) 通过赋值语句赋值 (如:a=3; ) 通过初始化方式赋初值 (如:int
5、k=3;) 所谓初始化是指在定义变量的同时指定变量的初值,形式有二: 例如: int k=3,m=3, n(3); () int k=m=n=3; /不允许为多个变量同时初始化,数据类型 变量名=表达式; 数据类型 变量名(表达式);,2.变量的初始化,2019年4月7日星期日,安徽理工大学计算机软件教研室,10,C+中增加了“引用”这一概念,许多地方可以代替指针实现相应的功能,比指针更安全。 所谓引用即给一个已知变量起个别名,系统不为引用另外开辟内存,而是与原变量共享同一段内存,引用好比是一个虚拟的变量,声明形式为:,数据类型 &引用名=已定义的变量,如: int a=3, /你知道此时a的
6、值为多少吗?,3.变量引用,2019年4月7日星期日,安徽理工大学计算机软件教研室,11,通过引用名与通过被引用的变量名访问变量的效果是一样的。使用引用是必须注意下列问题: 声明一个引用时,必须同时对它进行初始化,使它指向一个已存在的对象。 一旦一个引用被初始化,就不能改为指向其他对象。 即一个引用从它诞生之时起,就必须确定是哪个变量的别名,而且始终只能作为这个变量的别名,不能另作他用。 引用可以作为形参,称为引用调用。,2019年4月7日星期日,安徽理工大学计算机软件教研室,12,2.2.2 常量,在程序运行过程中其值不能改变的量,有值常量和符号常量两种。,1.整型常量,2019年4月7日星
7、期日,安徽理工大学计算机软件教研室,13,十进制小数形式:由正负号、数字和小数点组成, 如1.25、-1.25、17. 和 .1 指数形式:由尾数、指数符号e(或E)及指数构成,其中指数必 须是十进制整数。如1.25e-5、+1e10、-1.25e5。 注意: e前面不能没有数字,e后面的数字必须为整数,也不能加园括号。如1E(-3)、E-5、1e2.1都是错误的。,2.实型常量,2019年4月7日星期日,安徽理工大学计算机软件教研室,14,C/C+提供了两类字符型常量: 普通字符常量:用单引号括起来的一个字符。如:A、 0、? 。 转义字符常量:以“ ” (反斜杠)开头的用单引号括起来的字符
8、序列。如: n 、 t 、 x61等。常用的转义 字符见p26。 注意: 0表示ASCII码为0的字符,它是一个空字符,注意其与0的区别,后者表示的是ASCII码为48的数字字符。 字符型数据在内存中以ASCII码存储,故整型数据和字符型数据在一定范围内可以通用。如:,2.字符常量,x= a +2;,2019年4月7日星期日,安徽理工大学计算机软件教研室,15,是以标识符形式出现的常量,作用是便于程序阅读和修改。C+中用define命令或关键字const定义符号常量,形式如下:,字符串常量是用双引号括起来的字符序列, 系统在字符串常量最后自动加字符串结束符号 0 。 例如: 字符串“A”的存储
9、形式: 字符A的存储形式:,#define 标识符 常量值 或:const 数据类型 标识符 = 常量值,4.字符串常量,5.符号常量,2019年4月7日星期日,安徽理工大学计算机软件教研室,16,注意:,习惯上符号常量名大写,而变量名小写,以示区分。 符号常量虽然用标识符来标识,但本质上是常量,具有常量值不能改变的性质。,#define PI 3.14 #include “iostream.h“ void main( ) float r=3.0,s,l; l=2*PI*r; s=PI*r*r; cout“l=“l“,s=“ sendl;,例2-1,1.演示不同精度圆周率的程序运行结果 2.观
10、察编译中的“警告”对程序运行的影响 3.消除“warning”的方法,2019年4月7日星期日,安徽理工大学计算机软件教研室,17,运算符具有三个属性: 优先级:指运算的先后次序,共分15个级别。(见p27表1.2.4) 结合性:指相同优先级运算符连续出现时的计算顺序,分自左 向右和自右向左两种,除特别声明外,皆指自左向右。 目 数: 指运算符要求的操作数的个数,包括单目、双目和三目, 一般目数越少,优先级越高。,表达式:由常量、变量、函数调用和运算符按一定规律组合在一起构成的式子。 如: a+14/(3+2)-sqrt(17),2.3 运算符和表达式,2.3.1 基本概念,2019年4月7日
11、星期日,安徽理工大学计算机软件教研室,18,C运算符简介,1.概念:运算是对数据的加工,在描述数据加工时,用来表示各种运算的符号称运算符。用运算符将运算对象连接形成的运算式称运算表达式,简称表达式。 C语言的运算符是一种向编译程序说明一个特定的数学或逻辑运算的符号, 运算符必须有运算对象。C中运算符的运算对象可以是一个,称单目运算符;运算对象可以有两个,称双目运算符;运算对象还可以是三个,称三目运算符。双目运算符放在运算对象中间,三目运算符夹在三个运算对象之间。,2019年4月7日星期日,安徽理工大学计算机软件教研室,19,2.优先级:表达式中有多个运算符时,就会碰到哪个先运算的问题,称运算符
12、的优先级,即优先级高的先运算。 注:用圆括号括住的部分先算,其优先级高于任何运算符;若在圆括号中又有圆括号,则内层圆括号优先于外层圆括号。 3.结合性:即同级别运算符还规定结合性,运算时自左向右进行的,称左结合;运算时自右向左进行的,称右结合。 4.运算符:有30多种,分类见下页图。 注:运算符由键盘上的符号或若干符号组成;,2019年4月7日星期日,安徽理工大学计算机软件教研室,20,2019年4月7日星期日,安徽理工大学计算机软件教研室,21,少数运算符号有重复,如: “+”:既是单目的正运算,又可表示双目加法运算; “-”:既是单目的取负运算,又可表示双目减法运算; “*”:既是双目乘法
13、运算,在指针运算中表示指针指向的变量; “&”:表示双目逻辑的“与”运算,在指针运算中表示取地址和运算。,2019年4月7日星期日,安徽理工大学计算机软件教研室,22,2019年4月7日星期日,安徽理工大学计算机软件教研室,23,种类: + (加法或取正) - (减法或取负) * (乘法) / (除法) % (求余数) + (自增) - (自减),正、负,加、减,2.3.2 运算符,1.算术运算,其中: +和-的结合性则是自右向左 优先级:(从高到低) (+、-、+、-) (*、/、%) (+、-),2019年4月7日星期日,安徽理工大学计算机软件教研室,24,说明: 在除法运算中,当两个操作
14、数都是整数时,商也为整数,小数部分一律舍去。如: 1/2 0 1.0 /2 0.5 %(求余运算)要求两个操作数都是整型,结果为整除后余下的整余数。 自增、自减运算符(+、- -) +i , -i (在使用 i之前,先使i的值加减1) i+ , i- (在使用 i之后, 使i的值加减1),若 i 的值为3,则: j=+i; j的值为4, i的值为4 j=i+; j的值为3, i的值为4,注意: 自增、自减运算符只能用于变量,而不能用于常量和表达式。 () 5+、(a+b)+,2019年4月7日星期日,安徽理工大学计算机软件教研室,25,有关表达式使用中的问题说明: 1.在表达式中包含自加(减)
15、运算时,很容易出错。 如:(i+)+(i+)+(i+) 表达式值为9,然后i值为6;(i原为3) k=(+i)+(+i)+(+i) 先对i自加三次1,i得6,然后k=6+6+6 2.C语言中有的运算符为一个字符,有的为两个字符,如:i+j,是理解成(i+)+j,还是i+(+j)呢?C编译时尽可能多地自左而右将若干字符组成一个运算符,故解释为(i+)+j。,2019年4月7日星期日,安徽理工大学计算机软件教研室,26,种类: (大于) = =(等于)、 =(大于等于)、 !=(不等于) 优先级: (从高到低) ( 、 = ) ( = = 、 != ) 关系运算描述的是一种“判断关系”,其结果有“
16、真(true)”和“假(false)”两种。用“1”代表“真”,用 “0” 代表“假” 例如:53的结果为1, aB的结果为0 思考: x为0到100之间的数能否表示为 0=x=100?,2 .关系运算,2019年4月7日星期日,安徽理工大学计算机软件教研室,27,种类: &(逻辑与)、 |(逻辑或)、!(逻辑非) 优先级: (从高到低) ! & | 其中,“!” 是单目运算符,优先级高于算术运算符。“” 和 “|” 低于关系运算符。 逻辑运算通常用来连接关系运算,逻辑运算符两端的操作数如为“非”,就当作“真”来处理,如果是“”,便当作“假”来处理。逻辑运算的结果也只有 0(false)和1(
17、true)两种。,3 .逻辑运算,2019年4月7日星期日,安徽理工大学计算机软件教研室,28,说明: 当多个&连续出现时,如表达式& 表达式 & 表达式从左到右,只要一个操作数为0,结果就为0,不进行后续运算。 当多个 | 连续出现时,如表达式 | 表达式 | 表达式从左到右,只要一个操作数为1,结果就为1,不进行后续运算。 例如表达式:(m=ab)&(n=cd) 当a=1,b=2,c=3,d=4,m和n原值为1;由于ab的值为0,所以m=0,而n=cd不被执行,因此n的值仍保持原值1。,2019年4月7日星期日,安徽理工大学计算机软件教研室,29,#include “iostream.h“
18、 void main() int m,n=10; m=2 ,例2-2,1.分析运行结果 2. 改为m=0&n+,结果又如何。,形式: e1?e2:e3 一般而言,e1为条件表达式,当其成立时,将e2的值作为整个表达式的值,不再计算e3的值;否则取e3的值作为整个表达式的结果,而不计算e2的值。,4 .条件运算,2019年4月7日星期日,安徽理工大学计算机软件教研室,30,如: max(xy?x:y); /将和中较大的一个数赋值给变量max 条件运算符的结合性是由右向左 思考题: 对n(0)个人进行分班,每班k(0)个人,最后不足k人也编一班,问要编几个班?(试用条件运算符表达),n%k0?n/
19、k+1:n/k,格式: 作用: 将一个数据赋给一个变量,并以变量的值作为整个式子的值。,变量 赋值运算符 表达式,5 .赋值运算,2019年4月7日星期日,安徽理工大学计算机软件教研室,31,其中赋值运算符可以是 “=”,也可以是复合赋值运算符, 如“+=”、“-=”、“*=”、“/=”和“%=”等等。 复合赋值运算符的等价形式: (以 “+=”为例) 例如: b /= a+2 等价于: b = b/(a+2) 结合性自右向左 若两端类型不同,则系统自动将右端类型转换为左端类型。 例如:有定义 int a = 3.78; 则a中存放的值为3 左端只能是变量(或数组元素),不能为表达式或常量,如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 基本 数据类型 运算 表达式
链接地址:https://www.31doc.com/p-2559030.html