基本数据与操作.ppt

上传人:小飞机 文档编号:6263547 上传时间:2023-10-11 格式:PPT 页数:45 大小:273.49KB
返回 下载 相关 举报
基本数据与操作.ppt_第1页
第1页 / 共45页
基本数据与操作.ppt_第2页
第2页 / 共45页
基本数据与操作.ppt_第3页
第3页 / 共45页
基本数据与操作.ppt_第4页
第4页 / 共45页
基本数据与操作.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《基本数据与操作.ppt》由会员分享,可在线阅读,更多相关《基本数据与操作.ppt(45页珍藏版)》请在三一办公上搜索。

1、第2章 基本数据与操作,程序需要用约定的字符集来描述,C+语言基本上采用ASCII码中的可见字符构成字符集。,2.1 标识符与关键字,2.1.1 标识符,标识符是由程序员为程序中的各种成分:变量,有名常量,用户定义的类型,枚举类型的值,函数及其参数,类,对象等所起的名字。标识符的组成规则:标识符是一个以字母或下横线_开头的,由字母、数字、下横线组成的字符串.如:abcd,c5,_PERSON_H 都是合法的标识符,而3A,A*B,43.5A 都是不合法的,一个标识符中间不可插入空格。,2.1.1 标识符,标识符应与任一关键字有区别,如for,if,case 等都不可作标识符。标识符中字母区分大

2、小写。如ABC与abc,被认为是不同的两个标识符。而关键字是否区分大小写,取决于不同系统定义。标识符具有有效长度,(一般32位)在软件工程中,提倡使用“匈牙利标记法”为变量起名。尽量不要使用下划线开头的标识符,以免与系统中预先定义的一些标识符冲突。,2.1.2 关键字,关键字是这样一类有特定的专门含义的单词。对于C+语言来说,凡是列入关键字表的单词,一律不得移作它用。因此,关键字又称为保留字(reserved word)。例如在上节的程序中,void,int,for,if 等单词就属于关键字。,2.1.2 关键字,关于C+语言的关键字,有如下说明:C+语言的关键字一般包含了几乎所有的C 语言的

3、关键字。随着C+语言的不断完善,其关键字集也在不断变化。各不同版本的C+语言的实现可能有不少涉及其应用领域的关键字的设置.总之,关键字集合是使用C+语言编程前应首先弄清楚的,特别是对少数个别的关键字的设置应有所了解,以免在编程中产生错误,至少应避免在设定标识符时与关键字重名。,2.1.3 基本数据类型,C+是一门强数据类型的语言,每一种数据一般都严格地对应确定的数据类型。C+的数据类型有基本数据类型和非基本数据类型之分。基本数据类型是C+内部预先定义的数据类型,非基本数据类型包括指针、数组和结构以及类类型等,非基本数据类型也称用户引入的数据类型。,2.2 常量与变量,C+程序中的常量是指固定不

4、变的量。一般常量有两种表示形式:一种称为直接常量,一种称为符号常量。例如圆周率pai=3.1416,其中pai就是一个符号常量,pai是量3.1416的名字,而3.1416 称为直接常量。C+程序中符号常量的名字就是一个标识符,而直接常量是一类特殊的单词,它也是程序所要处理的数据的值。直接常量分为四类:整型常量,浮点型常量,字符型常量和字符串常量。,2.2.1 整型常量,整型常量即int型常量,实际上就是整数。C+程序中除允许一般的十进制整数之外,还允许八进制整数和十六进制整数出现。例如:cout023“”23“”0 x23;将输出不同的十进整数:19,23,35。,2.2.2 浮点型常量,也

5、称为实型常量,是指数据是以浮点方式存储的。小数点表示法:4.75,2.0 科学表示法:1.2e4,-7.37e-3浮点常量是double类型的常数。,2.2.3 字符型常量与字符串常量,1 字符型常量用单引号 括起来的一个字符构成了一个字符常量。字符型常量是char类型的常数。字符型数据总是占用一个字节并以定点方式存储该字符的ASCII值,因此字符可以被用于描述小的整型数。表现形式有:字符形式转义字符 cout“hellonTom”;十六进制的转义字符如A的ASCII值为65,若转换为十六进制为x41八进制的转义字符如:!的ASCII值为33,可用41表示。,2.2.3 字符型常量与字符串常量

6、(续),2 字符串常量用双引号“”括起来的字符序列构成了一个字符串常量。如:“hello worldn”。一个字符串占用的字节数等于它所包含的字符个数加1,对应于每个字符的字节中存放该字符的ASCII值,而多余的一个字节存放0。表示字符串结束。注意:A与“A”的区别。与“”的区别。,2.2.4 符号常量,1 宏定义由C语言延续下来的符号常量表示方法是宏定义。如:#define PI 3.14由于宏不能体现数据类型,在一些特殊情况下可能带来难以察觉的错误,因此,C+建议用const类型的常量替代它。,2.2.4 符号常量(续),2 用const定义常量语法格式const type 常量名(值)c

7、onst type 常量名=值定义中的type可以是任何一种内置类型或自定义类型,省略时表示int类型。优点:增加了数据类型,使得编译器能够实现对类型的核查以消除潜在的错误隐患。,2.2.4 符号常量(续),3 使用enum定义的枚举常量描述一组相关的状态或属性。如若干种颜色等。格式:enum 枚举类型名 枚举值列表;如:enum Week Sun,Mon,Tues,Sat;使用:Week aday=Wed;/aday的值只能是SunSat之一。第1个枚举元素值默认为0,其他值依次递增。也可以指定枚举元素的值。标准C+对枚举类型的限制比较严格,如不允许枚举类型的变量进行增减运算等。,2.2.5

8、 变量,变量定义隐含内容系统在内存中分配一块存储区用变量名表示存储在此内存区中的值基本形式type 变量名(初始值);type 变量名=初始值;定义变量时最好为变量提供初始值,否则,变量的值是难以预料的。,2.3 简单运算,运算符和表达式算术运算赋值类运算自加和自减运算关系运算和逻辑运算位运算sizeof运算与逗号运算,2.3.1 运算符和表达式,运算符的使用含义是由系统预定义好的(注意,C+允许用户重定义即重载运算符,从而使它们对某些用户自定义类对象可具有另外的用户自定义运算符含义)。通常情况下,运算符所操作的运算对象均为基本数据类型(或其简单派生类型)的具体数据。通过运算符把运算对象(常量

9、或变量)按照一定的规则连接起来就构成了表达式。表达式的运算结果是一个“值”(它将隶属于与运算对象相关的某种数据类型)。表达式的求值顺序取决于表达式中那些运算符的优先级以及结合性。,通常,表达式计算后的结果被存储在寄存器中,如果不保存到某个变量中就会被随后的运算“冲掉”。由于表达式值本身不是保存在内存中,也就不能代表内存变量。特殊情况下除外。见P23,2.3.2 算术运算,算术运算包括:单目的单减(-)、增量(+)和减量(-)运算,以及双目的加(+)、减(-)、乘(*)、除(/)和模(%)运算。,1.单目的单减(-)使用格式:-使用含义:相当于用-1乘上运算分量也即随后所跟的的值。例如:-x,-

10、(a+b-2*c),-sqrt(a*a+b+b),2.单目的增量(+)和减量(-)运算增量(+)的使用格式:前缀增量:+后缀增量:+其中的“”必须为int型(包括char型)变量。增量(+)使用含义:令作为运算分量的那一变量值加1。前缀增量+i与后缀增量i+的区别在于:如果+i与i+又作为分量参加其他运算的话,前者是先令i加1然后参加其他运算;而后者则先令i参加其他运算,而后再令i加1。,x=i+;/结果等价于 x=i;i=i+1;x=+i;/结果等价于 i=i+1;x=i;减量(-)的使用格式:除将加法改为减法外,减量运算与上述的增量运算完全相同。,void getn(int*n)while

11、(*n)-);,void main()int a=12;getn(,3.双目的加(+)、减(-)、乘(*)、除(/)和模(%)运算使用格式:使用含义:相当于进行数学中的加(+)、减(-)、乘(*)、除(/)和取模(%)运算。例如:x+y,x-y,x*y,x/y,x%y。,需要注意以下几点:,1、做除法运算时,若参加运算的两个对象都为int类型时,则运算结果(即商)仍为int型数据(甩掉商的小数部分而取整)。如,7/3的结果为2,而7/4的结果则为1。2、取模运算符主要用于整型数值计算。x%y是要求出x除以y所得的余数。如,7%3的结果为1,而7%4的结果则为3。注意,x%y的值总等于x-y*(

12、x/y)的值。,需要注意以下几点:,3、若参加运算的两个分量的类型不同时,系统会自动将“短”类型数据转换为等值的“长”类型数据而后再进行运算,而运算结果规定为“长”类型数据。所谓“短”类型数据是指该类型的数据占据的内存空间少而且所表示数据大小的范围也要小。如,char比int要“短”,而int又比float“短”等等。如:5/2为2,而5/2.0则为2.5。这是因为int型的5与float型的2.0进行运算时,系统会自动将int型的5转换为等值的float型的5.0后再进行运算,因而结果也必然为float型的2.5了。,2.3.3 赋值类运算,1 赋值运算是一个双目运算符2 自反的赋值运算+=

13、、-=、如:x+=3 与 x=x+3 3 赋值表达式x1=(x2=3)+2/相当于x2=3;x1=x2+3,2.3.4 关系运算和逻辑运算,1 逻辑值C+语言中增加了逻辑类型bool,其值可以是true或false,但本质上它是一种用整数描述的量,值为1和0。例如:bool flag=true;flag=flag-1;flag=flag 1);,2.3.4 关系运算和逻辑运算(续),2 关系运算C+语言提供了6种关系运算符:、=、=、=、!=。表达式 a=c 等价于(a=c)。一个关系表达式的值只能是true 或 false。,2.3.4 关系运算和逻辑运算(续),3 逻辑运算C+提供了三种逻

14、辑运算,相应的逻辑运算符为:!,&,|(分别称为逻辑非,逻辑与,逻辑或运算)。如:!true,(31)&(24),(2.53)|falseC+允许其它类型的数据(整型、浮点型或字符等)作为逻辑运算符的操作数。如:2(x-3.0)x=0(或!x)x!=0(或 x)3=x=6 改成 3=x&x=6,2.3.5 位运算,1 位运算的规则C+提供如下6个位运算符:(单目,按位求反)、&(双目,按位与)、|(双目,按位或)、(双目,按位异或)、(双目,按位右移)。见例P28。,2.3.5 位运算(续),2 位运算的特殊用途运算可以将一个数中的某些位清0。运算可将一个数中的某些位置1。异或运算可以方便地使

15、一个数据的某些位“翻转”。,“XOR”应用举例:用于屏幕颜色的擦除。已知屏幕上某点的颜色值为x,为了改变其颜色,可以用一种新的颜色如y与其“XOR”,结果为xy。若要还原成x(相当于擦除操作),可以用y与其再进行“XOR”运算,结果为(xy)y=x(yy)=x0=x。这就恢复了原来的颜色x。,Windows的绘图程序中用鼠标拉动画直线、用鼠标拖运窗口以及一些动画软件中都采用了这种技术。,2.3.6 sizeof运算与逗号运算,sizeof是系统的关键字同时又作为常用的运算符。sizeof运算符用于确定数据占有的内存空间大小,返回一个表达式或某一数据类型的字节数。它主要有两种语法格式:sizeo

16、f(e)或者 sizeof e sizeof(type)type 是定义变量的数据类型,e是表达式。类型type格式必须放在括号中,表达式可以不用括号。sizeof 运算符的操作数既可以是内置数据类型,也可以是用户引入的数据类型或结构变量。,2.3.7 sizeof运算与逗号运算(续),sizeof在编译阶段就完成了计算处理,其结果作为无符号int常数。因而操作数实质上包含数据所占内存的静态大小。下面是32位模式下的输出结果:sizeof(1.0f)=sizeof(float)=4,sizeof(1.0)=sizeof(double)=8sizeof 1=sizeof(char)=1,size

17、of 1=sizeof(int)=4sizeof(x6D)=1,sizeof(0 x6D)=4。sizeof(12)=3逗号运算符是一个双目运算符,见P29。,2.4 混合运算与类型转换,隐式转换 显式类型转换,2.4.1 隐式转换,在运算符本身没有特殊要求情况下,整型、实型和字符型数据间可以进行混合运算。此时,系统会将参加运算的操作数类型转换一致后再进行运算,称为隐式类型转换。类型转换中,以“数据升格”方式进行。相同类型的数据由短数据转换成长数据,定点数转换为浮点数,有符号数转换为无符号数。(低)charunsigned charintunsignedlongunsigned longflo

18、atdouble(高)如A/2 和 3.0/2 分别转换为65/2 和 3.0/2.0,2.4.2 显式类型转换,1 来自C语言的类型转换运算符语法形式:(type)(expression)举例:int x(3),y(2);cout x/y;double(x)/y;结果是什么?,2.4.2 显式类型转换(续),2 造型(cast)标准C+提供了称为造型的4种类型转换符。static_cast、dynamic_cast、const_cast和reinterpret_cast语法形式:X_cast(expression),2.4.2 显式类型转换(续),1、const_cast主要用于const常

19、量向非常量的类型转换如:const int x(1);int*px=const_cast(其中const_cast就是去掉常量指针x的const属性。不经过转换时,常量的地址不能赋值给普通的指针变量。这样的转换并不常见,常常是因为设计不合理所致。,2.4.2 显式类型转换(续),2、static_cast与C语言类型转换运算符(type)作用基本相同,在编译时完成,属于静态转换。如:int x=static_cast(3.8);/x 的值为3可以用static_cast将void*类型的指针转换为其它类型的指针,如:int y=2;void*vptr=/错误的转换可见,由于在程序编译时进行类型

20、匹配检查,使用static_cast比来自C语言的类型转换符更安全,2.4.2 显式类型转换(续),3、reinterpret_cast reinterpret_cast的作用和功能与旧式的(type)运算符完全相同。int y=2;double*ptr=reinterpret_cast(reinterpret_cast的类型转换几乎是没有任何“障碍”的,也是最危险的。,2.5 数据输入与输出,C和C+都属于内核很小的语言,本身没有输入输出语句,所有的输入和输出工作都由预定义的库函数或对象来完成。基本的输入和输出操作由头文件中定义的两个对象cin和cout完成。cin和cout具有数据类型的自动识别功能,对于所有内置的简单类型,不需要用户的任何设置,即可实现对数据的正确输入与输出。,2.5 数据输入与输出(续),1 cout与数据输出预定义常量endl,表示光标换行,效果与n等同。2 cin与数据输入使用cin可以连续输入多个变量的值。如果连续输入的数据是整数或实数,采用空格或回车分隔。如果连续输入整数(或实数)和字符(或字符串),应采用回车分隔。,第2章 结束,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号