二章节基本数据类型运算符和表达式.PPT

上传人:本田雅阁 文档编号:2507658 上传时间:2019-04-04 格式:PPT 页数:63 大小:563.01KB
返回 下载 相关 举报
二章节基本数据类型运算符和表达式.PPT_第1页
第1页 / 共63页
二章节基本数据类型运算符和表达式.PPT_第2页
第2页 / 共63页
二章节基本数据类型运算符和表达式.PPT_第3页
第3页 / 共63页
亲,该文档总共63页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《二章节基本数据类型运算符和表达式.PPT》由会员分享,可在线阅读,更多相关《二章节基本数据类型运算符和表达式.PPT(63页珍藏版)》请在三一文库上搜索。

1、2019年4月4日星期四,安徽理工大学计算机软件教研室,1,第二章 基本数据类型、运算符和表达式,2.1 数据类型 2.2 变量和常量 2.3 运算符和表达式 2.4 指针 2.5 typedef语句 2.6 应用举例,2019年4月4日星期四,安徽理工大学计算机软件教研室,2,程序中要对各种各样的数据进行描述和操作,用到的数据都必须指明其类型。数据类型的作用: 指出了应为数据分配的存储空间的大小 规定了数据所能进行的操作,2.1 数据类型,2019年4月4日星期四,安徽理工大学计算机软件教研室,3,2019年4月4日星期四,安徽理工大学计算机软件教研室,4,基本数据类型,C+语言的基本数据类

2、型: 数据类型 类型说明浮 占用字节 字符型 char 1个 短整数 short 2个 整型 int 4个 浮点型 float 4个 双精度型 double 8个,2019年4月4日星期四,安徽理工大学计算机软件教研室,5,数据在计算机中的存放,数据在计算机中采用二进制存放;一个字节8个二进制位,示意图如下:,数的表示范围:-2727-1(-128127) 显然,一个字节表示数的范围是有限的。要表示更大范围内的数,就要使用多个字节。,7,0,2019年4月4日星期四,安徽理工大学计算机软件教研室,6,整数的存储格式,字符型 短整型 短整数表示范围为:-215215-1(-3276832767)

3、 长整型 长整数表示范围为:-231231-1,7,0,15,8,7,0,31,24,23,16,15,8,7,0,2019年4月4日星期四,安徽理工大学计算机软件教研室,7,实数的表示,实数也称为浮点数,用于表示小数;有两种表示形式: 十进制形式:. 指数形式:.,一般浮点数的可以达到7位有效数字。例如1234.567。双精度浮点数的有效位数可以达到1516位。,尾数部分,指数部分,31,24,23,16,15,8,7,0,2019年4月4日星期四,安徽理工大学计算机软件教研室,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月4日星期四,安徽理工大学计算机软件教研室,9,变量必须先有确定的值后才能参与各种相应的操作,变量获取值的途径有三: 通过输入语句输入 (如:cina;) 通过赋值语句赋值 (如:a=3; ) 通过初始化方式赋初值 (如:int

5、k=3;) 所谓初始化是指在定义变量的同时指定变量的初值,形式有二: 例如: int k=3,m=3, n(3); () int k=m=n=3; /不允许为多个变量同时初始化,数据类型 变量名=表达式; 数据类型 变量名(表达式);,2.变量的初始化,2019年4月4日星期四,安徽理工大学计算机软件教研室,10,C+中增加了“引用”这一概念,许多地方可以代替指针实现相应的功能,比指针更安全。 所谓引用即给一个已知变量起个别名,系统不为引用另外开辟内存,而是与原变量共享同一段内存,引用好比是一个虚拟的变量,声明形式为:,数据类型 &引用名=已定义的变量,如: int a=3, /你知道此时a的

6、值为多少吗?,3.变量引用,2019年4月4日星期四,安徽理工大学计算机软件教研室,11,通过引用名与通过被引用的变量名访问变量的效果是一样的。使用引用是必须注意下列问题: 声明一个引用时,必须同时对它进行初始化,使它指向一个已存在的对象。 一旦一个引用被初始化,就不能改为指向其他对象。 即一个引用从它诞生之时起,就必须确定是哪个变量的别名,而且始终只能作为这个变量的别名,不能另作他用。 引用可以作为形参,称为引用调用。,2019年4月4日星期四,安徽理工大学计算机软件教研室,12,2.2.2 常量,在程序运行过程中其值不能改变的量,有值常量和符号常量两种。,1.整型常量,2019年4月4日星

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月4日星期四,安徽理工大学计算机软件教研室,14,C/C+提供了两类字符型常量: 普通字符常量:用单引号括起来的一个字符。如:A、 0、? 。 转义字符常量:以“ ” (反斜杠)开头的用单引号括起来的字符

8、序列。如: n 、 t 、 x61等。常用的转义 字符见p26。 注意: 0表示ASCII码为0的字符,它是一个空字符,注意其与0的区别,后者表示的是ASCII码为48的数字字符。 字符型数据在内存中以ASCII码存储,故整型数据和字符型数据在一定范围内可以通用。如:,2.字符常量,x= a +2;,2019年4月4日星期四,安徽理工大学计算机软件教研室,15,是以标识符形式出现的常量,作用是便于程序阅读和修改。C+中用define命令或关键字const定义符号常量,形式如下:,字符串常量是用双引号括起来的字符序列, 系统在字符串常量最后自动加字符串结束符号 0 。 例如: 字符串“A”的存储

9、形式: 字符A的存储形式:,#define 标识符 常量值 或:const 数据类型 标识符 = 常量值,4.字符串常量,5.符号常量,2019年4月4日星期四,安徽理工大学计算机软件教研室,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月4日星期四,安徽理工大学计算机软件教研室,17,运算符具有三个属性: 优先级:指运算的先后次序,共分15个级别。(见p27表1.2.4) 结合性:指相同优先级运算符连续出现时的计算顺序,分自左 向右和自右向左两种,除特别声明外,皆指自左向右。 目 数: 指运算符要求的操作数的个数,包括单目、双目和三目, 一般目数越少,优先级越高。,表达式:由常量、变量、函数调用和运算符按一定规律组合在一起构成的式子。 如: a+14/(3+2)-sqrt(17),2.3 运算符和表达式,2.3.1 基本概念,2019年4月4日

11、星期四,安徽理工大学计算机软件教研室,18,C运算符简介,1.概念:运算是对数据的加工,在描述数据加工时,用来表示各种运算的符号称运算符。用运算符将运算对象连接形成的运算式称运算表达式,简称表达式。 C语言的运算符是一种向编译程序说明一个特定的数学或逻辑运算的符号, 运算符必须有运算对象。C中运算符的运算对象可以是一个,称单目运算符;运算对象可以有两个,称双目运算符;运算对象还可以是三个,称三目运算符。双目运算符放在运算对象中间,三目运算符夹在三个运算对象之间。,2019年4月4日星期四,安徽理工大学计算机软件教研室,19,2.优先级:表达式中有多个运算符时,就会碰到哪个先运算的问题,称运算符

12、的优先级,即优先级高的先运算。 注:用圆括号括住的部分先算,其优先级高于任何运算符;若在圆括号中又有圆括号,则内层圆括号优先于外层圆括号。 3.结合性:即同级别运算符还规定结合性,运算时自左向右进行的,称左结合;运算时自右向左进行的,称右结合。 4.运算符:有30多种,分类见下页图。 注:运算符由键盘上的符号或若干符号组成;,2019年4月4日星期四,安徽理工大学计算机软件教研室,20,2019年4月4日星期四,安徽理工大学计算机软件教研室,21,少数运算符号有重复,如: “+”:既是单目的正运算,又可表示双目加法运算; “-”:既是单目的取负运算,又可表示双目减法运算; “*”:既是双目乘法

13、运算,在指针运算中表示指针指向的变量; “&”:表示双目逻辑的“与”运算,在指针运算中表示取地址和运算。,2019年4月4日星期四,安徽理工大学计算机软件教研室,22,2019年4月4日星期四,安徽理工大学计算机软件教研室,23,种类: + (加法或取正) - (减法或取负) * (乘法) / (除法) % (求余数) + (自增) - (自减),正、负,加、减,2.3.2 运算符,1.算术运算,其中: +和-的结合性则是自右向左 优先级:(从高到低) (+、-、+、-) (*、/、%) (+、-),2019年4月4日星期四,安徽理工大学计算机软件教研室,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月4日星期四,安徽理工大学计算机软件教研室,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月4日星期四,安徽理工大学计算机软件教研室,26,种类: (大于) = =(等于)、 =(大于等于)、 !=(不等于) 优先级: (从高到低) ( 、 = ) ( = = 、 != ) 关系运算描述的是一种“判断关系”,其结果有“

16、真(true)”和“假(false)”两种。用“1”代表“真”,用 “0” 代表“假” 例如:53的结果为1, aB的结果为0 思考: x为0到100之间的数能否表示为 0=x=100?,2 .关系运算,2019年4月4日星期四,安徽理工大学计算机软件教研室,27,种类: &(逻辑与)、 |(逻辑或)、!(逻辑非) 优先级: (从高到低) ! & | 其中,“!” 是单目运算符,优先级高于算术运算符。“” 和 “|” 低于关系运算符。 逻辑运算通常用来连接关系运算,逻辑运算符两端的操作数如为“非”,就当作“真”来处理,如果是“”,便当作“假”来处理。逻辑运算的结果也只有 0(false)和1(

17、true)两种。,3 .逻辑运算,2019年4月4日星期四,安徽理工大学计算机软件教研室,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月4日星期四,安徽理工大学计算机软件教研室,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月4日星期四,安徽理工大学计算机软件教研室,30,如: max(xy?x:y); /将和中较大的一个数赋值给变量max 条件运算符的结合性是由右向左 思考题: 对n(0)个人进行分班,每班k(0)个人,最后不足k人也编一班,问要编几个班?(试用条件运算符表达),n%k0?n/

19、k+1:n/k,格式: 作用: 将一个数据赋给一个变量,并以变量的值作为整个式子的值。,变量 赋值运算符 表达式,5 .赋值运算,2019年4月4日星期四,安徽理工大学计算机软件教研室,31,其中赋值运算符可以是 “=”,也可以是复合赋值运算符, 如“+=”、“-=”、“*=”、“/=”和“%=”等等。 复合赋值运算符的等价形式: (以 “+=”为例) 例如: b /= a+2 等价于: b = b/(a+2) 结合性自右向左 若两端类型不同,则系统自动将右端类型转换为左端类型。 例如:有定义 int a = 3.78; 则a中存放的值为3 左端只能是变量(或数组元素),不能为表达式或常量,如

20、: a+2*=b () a=b+2=c+5 (),2019年4月4日星期四,安徽理工大学计算机软件教研室,32,赋值表达式也可包含复合的赋值运算符,如: a+=a-=a*a,如a=12,先进行a=a-a*a运算,结果为-132;然后进行a+=-132运算,结果为-264。 赋值表达式不仅可出现在赋值语句中,还可以表达式形式出现在其它语句中(如循环语句)。,2019年4月4日星期四,安徽理工大学计算机软件教研室,33,形式: e1,e2,e3, 其中e1、e2、e3均为表达式,从左向右依次计算各个表达式的值,而将最后一个表达式的值作为整个表达式的值,逗号运算符常用于循环语句的表达式中,将多个表达

21、式连接成一个表达式,如: for(i=0,j=n;ij;i+,j-) 逗号运算符的优先级别最低。 如:x=(a=3,6*3),是赋值表达式,x为18; x=a=3,6*a,是逗号表达式,x为3。 一个逗号表达式又可与另一逗号表达式组成新的逗号表达式。 如:(a=3*5,a*4),a+5 结果为20 注:并不是任何地方出现的逗号都是作为逗号运算符。在函数中参数也是用逗号间隔的。,6 .逗号运算,2019年4月4日星期四,安徽理工大学计算机软件教研室,34,1.求下面算术表达式的值: (1)设x=2.5,a=7,y=4.7 x+a%3*(int)(x+y)%2/4 (2)设a=2,b=3,x=3.

22、5,y=2.5 (float)(a+b)/2+(int)x%(int)y,2019年4月4日星期四,安徽理工大学计算机软件教研室,35,求下列关系表达式的值: (1)设f1、f2、f3、f4为float型,且f1=13.0,f2=23.0, f3=33.0,f4=43.0 f1=f2=f3=f4 (2)设int i1=13,i2=23,i3=33,i4=43 i1+i4= =i2+i3 (3)设char c1=a,c2=A,c3=1 (c1=c1+2)!=(c3=c3+1),2019年4月4日星期四,安徽理工大学计算机软件教研室,36,求下面各逻辑表达式的值 (设a=3,b=4,c=5): a

23、+bc&b= =c a|b+c&b-c !(ab)&!c|1 !(a+b)+c-1&b+c/2,2019年4月4日星期四,安徽理工大学计算机软件教研室,37,表达式书写规则:,1、乘号不能省略。 2、括号必须成对出现,均使用圆括号;可以出现多个,但要配对。 3、表达式从左到右要在同一基准上书写,无高低之分。,2019年4月4日星期四,安徽理工大学计算机软件教研室,38,7 .数据类型的转换 数据类型的转换分为显式(强制)转换和隐式(自动)转换。 强制转换格式: 或: 将一种数据类型的值强制转换为另外一种数据类型。常用于对函数的参数及返回值的操作。 假设、为float型数据,则(int)(x+y

24、)强行将+的值转换成整型,x和y仍为float型。 自动转换: 在不同类型数据进行混合运算时,系统自动进行的类型转换。 逻辑运算符要求操作数是bool型,如果是其他类型,自动转换为bool型。转换方法是:非0数据转换为true,0转换为false。,(类型名)表达式,类型名(表达式),2019年4月4日星期四,安徽理工大学计算机软件教研室,39,50L + 5 * a - 3.0,2019年4月4日星期四,安徽理工大学计算机软件教研室,40,如:(float)a 将变量a强制转换为单精度浮点型。 (double) a (将a转换成double) (int) (x+y) (将x+y的值转换成整型

25、) 注:表达式应用括号括起来。如写成: (int) x+y 则只将x转换为型,然后与y相加。 注:在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。如:(int) x 如x原指定为float型,进行强制类型运算后得到一个int型中间变量,它的值等于x的整数部分,而x的类型不变(仍为float)。,2019年4月4日星期四,安徽理工大学计算机软件教研室,41,char short int unsigned longunsigned longfloatdoublelong double,必定的转换,混合运算时由低向高转换,自动转换还包括赋值运算时赋值号右端类型向左端类型的转换

26、,8.内部函数 C/C+中提供了多种内部函数供用户编程序时直接调用,只需把包含内部函数的头文件,通过#include 预处理命令装入到程序中。例如,程序中要使用平方根函数sqrt,应该在程序加入: #include “ math.h“,2019年4月4日星期四,安徽理工大学计算机软件教研室,42,位运算操作符 C+特有的位运算功能是指进行二进制位的运算,这类运算可以完成很多汇编级的工作,包括:位逻辑运算和移位运算。 位逻辑操作符(Bitwise Logical Operators) & 按位与(Bitwise AND) a&b | 按位或(Bitwise inclusive OR) a|b 按

27、位异或(Bitwise exclusive OR) ab 按位反(Bitwise NOT) ab,2019年4月4日星期四,安徽理工大学计算机软件教研室,43,位逻辑运算符,微机中一般以4个字节存放一个实数,以2个字节存放一个整数,最左边一位(最高位)用作数的符号位。为表示数值,一般有: 原码:只将最高位作符号位(以0代表正,1代表负),其余各位代表数值本身的绝对值(以二进制表示)。 如:+7原码为:00000111;-7原码为:10000111 反码:一个数如果值为正,则它的反码与原码相同;一个数如为负,则符号位为1,其余各位是对原码取反。 如:+7反码为:00000111;-7反码为:11

28、111000,2019年4月4日星期四,安徽理工大学计算机软件教研室,44,补码:原码和反码不便于计算机运算,因为在运算中要单独处理其符号。因此最好能做到符号位和其它位统一处理,对减法也按加法来处理,这就是补码。 如想从十进制数9得到5可用减法:945;已知4的补数为1046,即4和6互补,因此可写成9615,去掉高位1,得5。 补码规定:正数:其原码、反码、补码相同;负数:最高位为1,其余各位为原码的相应位取反,然后对整个数加1。 如:-7原补码为:11111001,即对+7各位取反加1。 如果已知一个负数的补码,要将其转换为十进制数:先对各位取反;再将其转换成十进制;加上负号,减1。也可以

29、将补码中最高位不改动,其余各位取反加1,得到原码。,2019年4月4日星期四,安徽理工大学计算机软件教研室,45,注意: int x = 7; x&8 等于1 x&8 等于0,移位操作符 右移位(Right shift) a2 右移2位 左移位(Left shift) b1 左移1位,2019年4月4日星期四,安徽理工大学计算机软件教研室,46,1.“左移”运算符():用来将一个数的二进制位全部右移若干位,左边补入的数与被移位的数据是否带符号有关。若不带符号数,则补入的数全部为0;若带符号数,则补入的数全部等于原数的最左端位上的原数(即原符号位)。 注:右移1位相当于除以2,右移n位相当于除以

30、2n。 另:位运算符与赋值运算符结合可组成扩展的赋值运算符,如:&=、|=、=、=、=。例如a&=b相当于a=a&b。,2019年4月4日星期四,安徽理工大学计算机软件教研室,47,设a=-4,求b=a4 二进制数 十进制数 a -4 a4 0000 -2,1111111111111100,1111111111100000,1111111111111110,2019年4月4日星期四,安徽理工大学计算机软件教研室,48,位运算是对字节或字中的实际位进行检测、设置或移位,只适用于字符型和整数型变量以及它们的变体,对其他数据类型不适用。 要注意区别接位运算符和逻辑运算符的不同。 如x=7,则x&8的

31、值为真(1),而x&8的值为0。 关系运算和逻辑运算表达式的结果只能是1或0,而按位运算的结果可以取0或1以外的值。,2019年4月4日星期四,安徽理工大学计算机软件教研室,49,求下列各式位运算的结果 025 025&032 064|015 071052 152,2019年4月4日星期四,安徽理工大学计算机软件教研室,50,其它运算符,求字节数运算符sizeof 该运算符是单目运算符,运算对象可以是任何类型说明符或变量。 注:运算对象必须用圆括号括住; 功能是用来测试数据类型所占用的字节数。 该运算符优先级和单目算术、逻辑、自增自减运算符同级; 该运算符结合性满足右结合。,2019年4月4日

32、星期四,安徽理工大学计算机软件教研室,51,2.指针运算符:“*”和“&” 3.成员运算符:“-”和“.” 4.强制运算符:“()”用来改变表达式的运算顺序,也常用于不同类型的强制转换、函数调用、参数表等,所以称“强制运算符”,优先级别最高。 5.下标运算符:“”访问数组中的一个具体元素时,必须通过使用数组名及跟在数组名后的方括号中的下标来实现,这对方括号称下标运算符。,2019年4月4日星期四,安徽理工大学计算机软件教研室,52,2.4 指针(与数组一块讲),每个变量在内存中存放都对应一段地址,第一个字节的地址就是变量的地址,将存放地址的变量称为指针变量。, &x就是变量的地址,1. 基本概

33、念,2019年4月4日星期四,安徽理工大学计算机软件教研室,53,取内容* *(地址) 表示根据地址取内容 如图中所示, *( p就是一个指针,存放x的地址。 p指向x, *p的值为4,*p就是x。 出现x的地方可以用*p代替,出现 *p的地方可以用x代替。,p,x,2019年4月4日星期四,安徽理工大学计算机软件教研室,54,定义 例如: int *p; float *q; 指针所指对象的类型。 初始化 在定义的同时赋初值,称为指针变量的初始化。 例如: float d =1.5, *p= /注意不能写做*p=&d,数据类型 *标识符;,不是指针名的一部分,p,d,2.定义及初始化,2019

34、年4月4日星期四,安徽理工大学计算机软件教研室,55,假定有定义:int *p, a; p=NULL; 指针的值为NULL(0) 表示不指向任何对象。 p=,赋值运算,3.运算,2019年4月4日星期四,安徽理工大学计算机软件教研室,56,p+n (或p-n): p+n:指向后面的第个元素。 p-n:指向前面的第个元素。 p+n的值为:p的值n*sizeof(p指向的类型),如,有定义: int a,*p= 假设a的地址为1000,则: p的值为1000 p+3的值为: 1000+3*sizeof(int)=1000+3*4=1012,算术运算,2019年4月4日星期四,安徽理工大学计算机软件

35、教研室,57,自增(+)和自减(-) p+、 +p、 p-、 -p 自增或自减后p指向前一个或后一个元素 指针相减 两个类型相同的指针可以相减,结果为这两个地址差之间能够存放的数据个数(数据类型为指针所指的类型)。 如,有定义: int *p1, *p2; 假设p1指向1000,p2指向1008, 则p2p1的值为: (1008-1000)/sizeof(int)=2,*p+ *(p+) *p p + (*p)+ *p (*p)+,2019年4月4日星期四,安徽理工大学计算机软件教研室,58,New 运算符 形式:,指针=new 数据类型; 指针=new 数据类型(初值);,或,4. new和

36、delete,2019年4月4日星期四,安徽理工大学计算机软件教研室,59,Delete 运算符 用于释放用new申请的动态存储空间,形式为:,delete 指针; delete 指针;,或,无需指明数组长度,只能释放由new申请的动态变量,例:,int a=3,*p=,2019年4月4日星期四,安徽理工大学计算机软件教研室,60,形式:,typedef 数据类型 新的数据类型名;,该语句作用是为已有的数据类型定义新的名称,使其更符合Windows系统中的相关对象的含义,可以像标准C+中的数据类型一样使用这些新定义的类型。如: typedef char CHAR; CHAR c1; /等价于c

37、har c1;,2.5 typedef语句,2019年4月4日星期四,安徽理工大学计算机软件教研室,61,例2-3 用代码表达下列命题: 1. 能且只能被和中的一个数整除。 解: 或 2. ch是大写字母。 解: 思考上述命题可否描述为AchZ?为什么?,(m%3= =0) & (m%2 !=0) | (m%2= =0) & (m%3 ! =0),(m%3= =0)!= (m%2= =0),ch=A&ch =Z,2.6 应用举例,2019年4月4日星期四,安徽理工大学计算机软件教研室,62,#include“iostream.h“ #include“iomanip.h“ #include“ma

38、th.h“ void main() float a,b,c; double l,s; coutca; b=sqrt(c*c-a*a); /sqrt为内部函数,对其的说明包含在头文件math.h中 l=a+b+c; s=a*b/2; cout“计算结果:“endl; coutsetw(8)“另一直角边=“bendl setw(11)“周长=“lendl setw(11)“面积=“sendl; ,例2-4 编写程序:要求输入直角三角形的斜边和一条直角边,求三角形另外一条直角边,周长和面积,输入 (已知),处理 (根据已知求未知),输出 (结果),编程过程,2019年4月4日星期四,安徽理工大学计算

39、机软件教研室,63,#include“iostream.h“ #include“math.h“ #include“iomanip.h“ void main() int c1,c2,c3; char c4; int x; cinx; c4=x=0?+:-; /x的符号存入c4 x=abs(x); /求整型数x的绝对值 c3=x%10; /x%10为个位数字 x=x/10; c2=x%10; c1=x/10; cout“数符 百位数 十位数 个位数“endl; coutsetw(2)c4setw(8)c1 setw(8)c2setw(8)c3endl; ,例2-5 编程输入一个三位整数,依次输出该数的正(负)号和百 位、十位、个位数字。,分离出符号位后分解各数位,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1