面向对象()课件_第1页
面向对象()课件_第2页
面向对象()课件_第3页
面向对象()课件_第4页
面向对象()课件_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象()面向对象()基本数据类型基本数据类型面向对象()第二章第二章 基本数据类型基本数据类型 2.12.1 基本数据类型2.2 2.2 数据在计算机中的存储2.3 2.3 数据类型选择的原则2.4 2.4 表达式及运算符2.5 2.5 数据类型转换面向对象()2.1 2.1 基本数据类型基本数据类型w 整数型w 字符型w 字符串w 实数型w 基本数据类型的修饰符面向对象()基本数据类型基本数据类型-整型整型w 整型常数w 整型常量标识符w 整型变量w 整型的扩展面向对象()整型整型-整型常数整型常数w 十进制数12,0,23,-127, 有正负数之分有正负数之分w 八进制数012,045

2、,063,059,078w 十六进制数无负数无负数0 xef,0 x12,0 x4450XC3,0Xed,0Xe2注:注: 用不同的前导符来区别不同进制:八进制数前加0,十六进制数前加0 x 十进制有负数,八、十六进制无负数面向对象()整型整型-整型常量标识符整型常量标识符w 用一些符号(常量标识符)表示常数w 用const 关键字来定义一个常数 如:const int STUD_NUM=10;const int PAGES=421;const int SECONDS=0 x12f;const int MONTHS=023;注:常量标识符一般用大写面向对象()整型整型-整型变量整型变量int

3、age;int work_hours=8; /可以在定义时给出初始值int total_hours=8+work_hours; /表达式可作初值age=18*3-2; /在使用时可以赋值work_hours+;total_hours+=(50-age)/10;注:注:一般用小写字母表示变量面向对象()整型整型-整型的扩展整型的扩展1w 整型的扩展-long int (长整型) long int 能表示的数据范围一般比int宽 long int 简称 long long int 类型的常数表示为:12L,23l,4432l,0 xefl,0537L long int 类型的变量和常量定义:lon

4、g l_var;const long LC_VALUE=10;面向对象()整型整型-整型的扩展整型的扩展2w 整型的扩展-short int (短整型) short int 能表示的数据范围一般比int窄 short int 简称 short short int 类型的变量和常量定义:short s_var;const short SC_VALUE=20;面向对象()基本数据类型基本数据类型-字符型字符型w 字符常数w 字符常量、变量标识符w特殊的字符面向对象()字符型字符型-字符常数字符常数w 字符常数 az; AZ; 09; !,#,%,&,.注:注:字符必须用单引号括起来,否则会

5、认为是标识符、数字或其它符号面向对象()字符型字符型-字符常量、变量字符常量、变量w 字符常量标识符const char BEST=A;const char NEWLINE=n;w 字符变量标识符char c;char grade=E;grade=E-4;/字符变量可以和整数一样运算c=get_char( );grade=A+1;面向对象()字符型字符型-特殊的字符特殊的字符w 特殊字符:-转义字符, 后的字符意义作了改变w 转义字符有以下几种用法:1. 控制字符2. 有特殊含义的符号的表示3. 与八、十六进制数值结合使用面向对象()字符型字符型-转义字符转义字符1w 控制字符控制字符n 换行

6、符号(newline)0 x0Af换页符号(formfeed)0 x0Ca响铃符号(bell)0 x07b回格符号(backspace)0 x080空字符(null)0 x00例:cout “aoperatingtsystemn”;响铃的同时,显示: operating system,再输出时换行面向对象()字符型字符型-转义字符转义字符2w 有特殊含义的符号的表示有特殊含义的符号的表示 反斜杠0 x5c单引号0 x27“双引号0 x22?问号0 x3f 空格符0 x20例:要输出提示信息:“Please enter “Yes” or “No”:”可写成:cout “Please enter

7、“Yes” or “No”:”面向对象()字符型字符型-转义字符转义字符3w与八、十六进制数值结合使用,与八、十六进制数值结合使用,用来表示相应数值的用来表示相应数值的ASCII码码ddd 13位八进制数位八进制数000377xhh 12位十六进制数位十六进制数x00 xff说明:说明:十六进制以十六进制以x开头,八进制不用开头,八进制不用例:例: char ch=A; char ch=101; char ch=x41;面向对象()转义字符小结转义字符小结w 转义字符以反斜杠转义字符以反斜杠开头,后跟相应字符开头,后跟相应字符w 转义字符要用单引号括起来,代表一个字符转义字符要用单引号括起来,

8、代表一个字符例:例:char c1=n;/换行符换行符 char c2=007;/响铃符响铃符 char c3=B; char c4=66; char c5=x42;/以上三个语句等价以上三个语句等价面向对象()字符型字符型-补充说明补充说明w 字符数据在内存中以ASCII码存储,即以整数表示w C+中字符和整数之间可以互用,字符变量可以和整数一样运算例: int a=b;/在内存中以整数表示 char c=97;输出:cout a endl; cout c endl;/输出不一样结果:98 a面向对象()字符串字符串w C+字符串特点:字符串特点: 由双引号括起来的字符序列 以空字符0(nu

9、ll)结尾 以数组形式表示及存储例: “Hello” “a” 与 a “ ” 空串,只有1个null字符w 字符串常量const char MESSAGE20=“This is for you!”;const char BEST=“A”;/ const char BEST=A;注:左BEST是字符串常量标识符,右BEST是字符常量标识符面向对象()基本数据类型基本数据类型-实数型实数型w 浮点型浮点型 float表示数据的范围是 3.4E+383.4E+38有效数字是7位w 双精度型双精度型 double表示数据的范围是 1.7E+3081.7E+308有效数字是15位w 长双精度型长双精度型

10、 long double表示数据的范围是 3.4E+49321.1E+4932有效数字是19位面向对象()实数型实数型-常数表示法常数表示法w 定点数表示法 (小数表示法)浮点数:-0.2113f,12.34f双精度数:0.00213,.224长双精度数:-0.00213L,1.234Lw 指数表示法1.23e10=1.23X10108.84E123=8.84X10123注:默认是双精度型注:默认是双精度型面向对象()实数型实数型-常量、变量常量、变量w 浮点常量const float PI=3.141593;const double L_PI=3.14159265;w 浮点变量float w

11、ages=3.34e23;double d_wages;long double ld_wages;d_wages=5600*1.1;ld_wages=d_wages/2.1;面向对象()基本数据类型基本数据类型-布尔型布尔型w 布尔型(bool)数只有两个值:true和false这两个值满足:!false=true非假即真!true=false非真即假例:bool end;end=true;/end具有值true面向对象()基本数据类型基本数据类型-布尔型布尔型w 条件表达式将返回布尔型值bool end=false;end=true;end=(ab)&(bc);end=(abs(de

12、lta)num/输入表达式输入表达式cout“Hello,world!”endl /输出表达式输出表达式(a=d)/逻辑表达式逻辑表达式面向对象()表达式的定义表达式的定义w 表达式是由表达式是由操作数操作数和和操作符(运算符)操作符(运算符)按照一定按照一定语法规则语法规则构成的符号序列构成的符号序列面向对象()表达式的构成表达式的构成w 表达式与语句表达式与语句w 表达式中的操作数表达式中的操作数w 表达式中的运算符表达式中的运算符w 表达式的语法规则表达式的语法规则w 表达式的值表达式的值面向对象()表达式与语句表达式与语句w 表达式加上分号构成表达式语句表达式加上分号构成表达式语句 1

13、+2+3;perimeter=2*PI*radius;cinnum;cout“Hello,world!”endl; (a=d);面向对象()表达式中的操作数表达式中的操作数w 操作数操作数 基本数据类型 -整型数 -实型数 -字符 构造数据类型 -字符串、数组、指针、引用、结构、对象 子表达式面向对象()表达式中的操作数表达式中的操作数1+2+3; /整型常量整型常量perimeter=2*PI*radius; /浮点型变量浮点型变量cinnum; /类的对象类的对象cout“Hello,world!”endl;/字符串字符串 (a=d); /子表达式子表达式面向对象()表达式中的运算符表达式

14、中的运算符w 算术运算符: +、-、*、/、%w 赋值运算符: =w 逻辑运算符: &、|、!w 关系运算符: =、!=、=、w 输入运算符: w 输出运算符: num; /输入运算符输入运算符cout“Hello,world!”endl;/输出运算符输出运算符(a=d); /比较、逻辑运算符比较、逻辑运算符面向对象()表达式中的运算符表达式中的运算符w 单目、双目、三目运算符单目、双目、三目运算符 单目:-a !a a+ -a 双目:a+b a=b a&b 三目:a ? b : c面向对象()表达式的语法规则表达式的语法规则w 每种运算符操作的数据类型和运算结果每种运算符操作

15、的数据类型和运算结果有规定,如:有规定,如:a%b操作数只能是整型操作数只能是整型&、|、!运算结果是布尔型运算结果是布尔型a b运算结果是布尔型运算结果是布尔型a+运算结果与运算结果与a的类型相同的类型相同面向对象()表达式的语法规则表达式的语法规则w 每种运算符的操作方式操作方式有其特定的规则语法语法 a + b 不能写成 +ab, ab+结合性结合性 a + b c 先执行 a + b 优先级优先级 1+3*2 结果为7,不是8 面向对象()运算符的结合性运算符的结合性w 表达式中出现相同级别的运算符时,先执行左边的运算符,则称该运算符为左结合左结合,否则为右结合右结合a+b-c

16、 左结合左结合 (a+b)-ca=b=c 右结合右结合a=(b=c)注:注:绝大多数运算符是左结合面向对象()运算符的优先级规则运算符的优先级规则w 先乘除、后加减4+5*6=34w 先计算、后赋值c=ab&bcw 括号改变优先级area=(a+b)*h/2面向对象()表达式的值表达式的值w 大多数表达式具有值大多数表达式具有值w 表达式的值可能是任意数据类型表达式的值可能是任意数据类型10+20*2 的值是整数 50radius=3.14*2/4 的值是小数 1.57A 的值是字符 Acingrade 的值是输入流对象 cincoutab 等价于cina; cinb;面向对象()介绍

17、几种表达式及运算符介绍几种表达式及运算符1、赋值表达式2、赋值运算符3、逗号表达式4、sizeof 运算5、表达式与运算符的补充说明6、表达式与运算符小结面向对象()赋值表达式赋值表达式表达式表达式1=表达式表达式2;w 赋值构成一个表达式w 赋值表达式的值是赋值运算符左边表达式的值perimeter=2*PI*radius;a=b=c*2;面向对象()赋值表达式赋值表达式-左值左值w 左值是能出现在赋值运算符左边的表达式w 左值具有两个条件:1、具有存放数据的空间空间3=3;/不允许,常量没有存储空间不允许,常量没有存储空间2、该空间是允许修改允许修改的const int CI=10;CI=

18、15; /不允许,常量的空间不能修改不允许,常量的空间不能修改面向对象()赋值表达式赋值表达式-左值左值w 变量是左值i=8w 赋值表达式是左值j=m+nw 返回引用的函数是左值(x=max(5,7)+=3 /等价于: (x=max(5,7)= (x=max(5,7)+3面向对象()赋值表达式赋值表达式-右值右值表达式表达式1=表达式表达式2;w 右值是能出现在赋值运算符右边的表达式右值表达式要求具有值左值表达式可以作为右值表达式面向对象()赋值表达式赋值表达式-右值右值int a, b;void func( );/函数不返回值a=(b=10);/b=10是左值表达式a=b;/b可以作为右值a

19、=func( );/错误!错误!函数不返回值面向对象()赋值运算符赋值运算符w 变量和常量初始化不是赋值变量和常量初始化不是赋值const int CI=10;/初始化int ivalue=10;/初始化ivalue=20;/赋值面向对象()赋值运算符赋值运算符-赋值缩写赋值缩写a+=b等价于a=a+ba-=b等价于a=a-ba*=b等价于a=a*ba/=b等价于a=a/ba%=b等价于a=a%b面向对象()赋值表达式赋值表达式-赋值兼容赋值兼容w 赋值运算符两边的表达式要求类型兼容赋值运算符两边的表达式要求类型兼容int i=0 x1032;char c;c=i; /将整数赋给字符型时会丢失

20、一些信息coutc;/输出字符2cout(int)c;/输出十进制数50面向对象()逗号表达式逗号表达式表达式表达式1,表达式,表达式2,.,表达式,表达式nw 逗号表达式具有值逗号表达式具有值w 其值是表达式其值是表达式n的值的值 (即最右边表达式的值是逗号表达式的值)(即最右边表达式的值是逗号表达式的值)面向对象()逗号表达式逗号表达式int a, b, c, d;d=(a=1, b=a+2, c=b+3);coutdendl;/输出结果为:输出结果为:6逗号表达式可以用于函数调用中的参数逗号表达式可以用于函数调用中的参数例如例如:func(n, (j=1, j+4), k);面向对象()

21、Sizeof 运算运算sizeof (类型名类型名) 或或 sizeof (表达式表达式) w 计算并返回操作数所占的内存空间计算并返回操作数所占的内存空间 单位:字节单位:字节sizeof (int);/值为值为4sizeof (char);/值为值为1sizeof (3.14*2);/值为值为8sizeof (3.14L*2);/值为值为10面向对象()表达式与运算符的补充说明表达式与运算符的补充说明w “=” 与 “=” 前者前者“赋值赋值”,后者,后者“等等于于”w “&” 和 “ |” 也称短路运算符也称短路运算符& 左边为左边为0,右边不用再计算,结果为,右边不用再

22、计算,结果为0 | 左边为左边为1,右边不用再计算,结果为,右边不用再计算,结果为1w a+ 与与 +a单独使用时,结果相同单独使用时,结果相同例:例:int x=3;coutx+;/结果为结果为3cout+x;/结果为结果为4面向对象()表达式与运算符的补充说明表达式与运算符的补充说明w 避免副作用避免副作用“+” 、 “ -”、 “ = ” 具有副作用例如:int a=3, b=5, c;c=a*b+b;coutcE2?E3:E4)的结果类型是的结果类型是E3或或E4的的类型类型w sizeof (表达式表达式)的结果类型是的结果类型是int型,单位是字节型,单位是字节w 逗号表达式的结果

23、类型是最后一个表达式的类型逗号表达式的结果类型是最后一个表达式的类型除常量表达式外,表达式的求值都在程序运行时除常量表达式外,表达式的求值都在程序运行时进行,而其结果类型是在编译时静态决定进行,而其结果类型是在编译时静态决定面向对象()2.5 2.5 数据类型转换数据类型转换w 类型转换的概念类型转换的概念w 赋值运算的类型转换赋值运算的类型转换w 隐式类型转换隐式类型转换w 显式类型转换显式类型转换w 类型转换的不安全性类型转换的不安全性面向对象()数据类型转换数据类型转换w C+C+遇到两个类型不同的数进行运算时,须先将它们遇到两个类型不同的数进行运算时,须先将它们转换成相同的数据类型,然

24、后再进行运算转换成相同的数据类型,然后再进行运算3+1.0 转换为:转换为:double+doubleA+3 转换为:转换为:int+int转换原则:转换原则:由占用字节少的向占用字节多的类型转换转换目的:转换目的:在转换过程中不丢失信息面向对象()数据类型转换数据类型转换 charcharshortshorti nti ntl ong i ntl ong i ntunsi gnedunsi gned charcharunsi gnedunsi gned shortshortunsi gnedunsi gned i nti ntunsi gnedunsi gned l ongl ongfl oatfl oatdoublelong double面向对象()赋值运算的类型转换赋值运算的类型转换转换原则:转换原则:w “=” 左右两边操作数的类型不一致时,右转换成左的类型,再将转换结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论