您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 面向对象程序设计技术_第2章基本数据类型与表达式
第二章基本数据类型与表达式2.1C++数据类型概述5大类型:整型、实型、数组、指针、记录、(自定义类型――结构、联合、类)sizeof(数据类型):测试某一数据类型实际占用内存的字节数例:coutsizeof(short)’‘sizeof(int)2.2整型数据整型:参看P15表2-1一、整型常量的表示表达式中的短整型常量:自动转换→整型进制表示方法:整型例:12例:012例:0X12无符号数:数后面跟U或u例:12U012U0X12U对长整型常量表示:数后面跟L或l例:12L二、整型变量的定义和初始化定义:例:ints=109L;longy=99;对数据被转换成与变量类型相同2.3字符型数据字符型:参看P18表2-2字符型常量的表示例:’A’例:’\r’‘\n’转义字符例:’\0’‘\15’\后跟数→无条件理解为8进制例:’\X0D’\后跟X→16进制例:‘\\’‘\”’\后跟除上述情况的其他字符→表示该字符本身字符型变量的初始化:例:以下表示同一字符’A’charc1=’A’;charc2=65;字符型与整型关系:字符型是一段特殊的整型例:表达式求值过程,字符→整数return12+’A’;例:输入、输出时→区分字符型与整型cout’A’65;结果?例:charc=’A’;coutint(c);inti=65;coutchar(i);结果:?2.4枚举型数据枚举类型:用户自定义类型,其中每一个符号常量对应一个整数定义枚举类型:①enum枚举名{符号名,符号名,…}②enum枚举名{符号名,符号名,…}变量名=表达式,…;同时→枚举类型定义、枚举变量定义例:enumWEEKDAY{Sun,Mon,Tue,Wed,Thu};例:EnumMONTY{Jan,Feb,May}x=Jan,y=Feb+2;枚举与整型的关系:例:枚举中的每个符号依次对应:0,1,2,3….EnumMONTY{Jan,Feb,May}x=Jan,y=Feb+2;coutx’‘y结果?例:为符号规定任意的对应整数,下一个符号默认的对应整数+1EnumSomeDigit{ONE=1,TWO,FIVE=6,SIX,SEVEN};SomeDigitx=SIX;coutx;结果?例:表达式中的枚举型无条件转换成相应的整型SomeDigitx=SIX;returnx+100;结果?例:输入枚举数据:只能用输入整型数的方法(原因:输入流cin→不识别枚举类型)输出枚举数据:输出流cout→将枚举类型识别为整数EnumSomeDigit{ONE=1,TWO,FIVE=6,SIX,SEVEN};SomeDigitx,y;cinxy;输入:72SomeDigitz=SIX;coutz;结果?2.5实型数据实型:参看P24表2-4实型的基本情况实型常量的表示:例:双精度(double)常量表示法:3.988(常规法)3.988e-3(科学法)例:单精度(float)常量表示法:后加F或f3.988F3.988e-3F例:长双精度(longdouble)常量表示法:后加L或l3.988L3.988e-3L例:科学记数法:小数点前→只1位有效数字指数→必须整数3.23e+5对3.23e5对实型变量定义、初始化:例:doublevar1=2.718,var2;Longdoubleld=3.1415926L;2.6符号常量与常值变量预处理指令#define:定义一个符号代表某个常量例:预处理指令→不能跟分号;#definePI3.1415对#definePI3.1415;错!常变量的定义:const数据类型变量=表达式例:定义时:赋初值只能:一次赋值操作constdoublePI=3.1415926;coutPI+10;对!PI=3.1415926;错!例:常值变量→有明确的类型属性,有利于发挥C++的类型检查机制2.7数值表达式每个表达式都有一个值:例:表达式=常量cout6.8+89;例:表达式=变量intx=90;coutxendl;例:表达式=函数coutsqrt(188)endl;算术操作符:位操作符:、、|、&、^异或、取反例:位操作→只能对整数52相当:乘252相当:整除25&2按位与赋值操作符:例:赋值表达式值=被赋值变量所获得的值if((k=m)==j)coutk;例:赋值语句intk,m=8;k=m=7;复合赋值操作符:变量?=表达式变量=变量?表达式例:变量?=表达式变量?=(表达式)s*=j-7增1减1操作符:++变量、――变量变量++、变量――例:intd=5;cout++d*2;结果?例:intd=5;coutd++*2;结果?例:连续出现+或-:被识别为++或――i+++j识别为:(i++)+ji++j识别为:(i++)ji++++j识别为:(i++)(++j)sizeof操作符:sizeof(数据类型)sizeof(表达式)例:doubled=3;coutsizeof(5)sizeof(d+2)sizeof(double)操作符的结合性:右→左:一元操作符、赋值操作符、复合赋值操作符左→右:其余操作符操作符的优先级:例:相邻两个操作符,若优先级相同,先执行哪个?答:与前一个操作符的结合性有关前一个操作符:左→右,先执行该操作前一个操作符:右→左,先执行后一个操作22+19+2*5i=j+=5*i数据类型自动转换:短的→长的有符号→无符号整型→实型低精度→高精度例:4+23L-5.1例:赋值、复合赋值,以操作符左边那个获得值的变量的类型为准自动转换即:赋值号左边变量的类型为最终转换类型intk=3;doubled=2.718;k+=d;coutk;结果?数据类型的强制转换:数据类型(表达式)C++标准格式提倡(数据类型)表达式例:int(3.14+i)2.8逻辑型数据与逻辑表达式逻辑类型:bool例:逻辑类型值:truefalseboolready=true;关系运算符:==、!=、、=、、=例:关系表达式的结果:true或falsecout-3!=3关系运算符的优先级:低于→位移、算术运算符例:k+ps1*s2(k+p)(s1*s2)逻辑运算符:!逻辑非、||逻辑或、&&逻辑与例:逻辑运算符操作对象:true或alse逻辑运算符操作结果:true或alsetrue&&false逻辑运算符的结合性:左→右逻辑运算符的优先级:逻辑运算符低于关系运算符(除逻辑非!)例:等价、k+ps1*s2&&fun()0(k+ps1*s2)&&(fun()0)例:逻辑非!优先级→最高(x0)不等价!x0逻辑表达式等价:任何情况,其值相等(同一条件:可以有不同的表达形式)!!E←→E!(x==y)←→x!=y!(xy)←→x=y!(x=y)←→x=y!(xy)←→x=y!(x=y)←→xys!(E1&&E2)←→!E1||!E2!(E1||E2)←→!E1&&!E2E1&&E2←→E2&&E1E1||E2←→E2||E1例:!(x=2&&x=7)←→!(x=2)||!(x=7)←→x2||x7逻辑型与其他数据类型的关系:0←→false非0←→true例:数值型数据逻辑形数据出现在同一表达式中false无条件转换0true无条件转换1boolk=true;intj=3;coutendlj+k’’j==k结果40例:逻辑变量的输出结果:0(false)或1(true)原因:C++输出流把逻辑数据识别为整数0或1boolk=true;intj=3;coutj!=k;结果?例:bool逻辑变量=数值数据(逻辑变量初始化或赋值),任何非0值←→trueboolk=9,h;h=5;coutk’‘h结果?11条件表达式:条件?表达式1:表达式2例:0←→false1←→true条件表达式的值intx,w;cinx;w=x100?0:x*3;coutW;输入23结果?输入123结果?2.9自定义类型修饰符2.10表达式的副作用与表达式语句有副作用的表达式:表达式在求值过程中,不但要提取变量的值,不可能改变量的值,这样的表达式称为有副作用。有副作用的操作:赋值(=)复合赋值前增1、前减1后增1、后减1例:赋值、复合赋值、前增1、前减1操作的结果仍然是变量对象,而且就是那个被作用的变量。intk=3;cout++(k+2);cout’‘k;结果?例:被赋值的对象:必须是变量对错?(p+3)-=k++5;100=P;例:对错?++k*=5;(++k)*=5;k++*=5逗号表达式:表达式1,表达式2例:逗号表达式的值→表达式2的值逗号表达式的类型→表达式2的类型x=(i++,j);coutx;例:逗号操作符优先级→最低inti=10,j=20;intx=(i++,j);inty=i++,jcoutx’’y;结果?
本文标题:面向对象程序设计技术_第2章基本数据类型与表达式
链接地址:https://www.777doc.com/doc-1980935 .html