《基本数据与操作.ppt》由会员分享,可在线阅读,更多相关《基本数据与操作.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2 2章章 基本数据与操基本数据与操作作n程序需要用约定的字符集来描述,程序需要用约定的字符集来描述,C+语语言基本上采用言基本上采用ASCII码中的可见字符构成码中的可见字符构成字符集。字符集。2.1 标识符与关键字标识符与关键字2.1.1 标识符标识符n标识符是由程序员为程序中的各种成分:变标识符是由程序员为程序中的各种成分:变量,有名常量,用户定义的类型,枚举类型量,有名常量,用户定义的类型,枚举类型的值,函数及其参数,类,对象等所起的名的值,函数及其参数,类,对象等所起的名字。字。n标识符的组成规则:标识符的组成规则:标识符是一个以字母或下横线标识符是一个以字母或下横线_开头的,由
2、开头的,由字母、数字、下横线组成的字符串字母、数字、下横线组成的字符串.如:如:abcdabcd,c5,_PERSON_H c5,_PERSON_H 都是合法的标识符,都是合法的标识符,而而3A3A,A*B,A*B,43.5A 43.5A 都是不合法的,一个标识符都是不合法的,一个标识符中间不可插入空格。中间不可插入空格。2.1.1 标识符标识符n标识符应与任一关键字有区别,如标识符应与任一关键字有区别,如forfor,if,case if,case 等都不可作标识符。等都不可作标识符。n标识符中字母区分大小写。如标识符中字母区分大小写。如ABCABC与与abcabc,被认为是不同的两个标识符
3、。而关键字是被认为是不同的两个标识符。而关键字是否区分大小写,取决于不同系统定义。否区分大小写,取决于不同系统定义。n标识符具有有效长度,(一般标识符具有有效长度,(一般3232位)在软位)在软件工程中,提倡使用件工程中,提倡使用“匈牙利标记法匈牙利标记法”为为变量起名。变量起名。n尽量不要使用下划线开头的标识符,以免尽量不要使用下划线开头的标识符,以免与系统中预先定义的一些标识符冲突。与系统中预先定义的一些标识符冲突。2.1.2 关键字关键字n关键字是这样一类有特定的专门含义的单关键字是这样一类有特定的专门含义的单词。对于词。对于C+C+语言来说,凡是列入关键字语言来说,凡是列入关键字表的单
4、词,一律不得移作它用。因此,关表的单词,一律不得移作它用。因此,关键字又称为保留字(键字又称为保留字(reserved wordreserved word)。)。n例如在上节的程序中,例如在上节的程序中,void,int,for,if void,int,for,if 等单词就属于关键字。等单词就属于关键字。2.1.2 关键字关键字n关于关于C+C+语言的关键字,有如下说明:语言的关键字,有如下说明:C+C+语言的关键字一般包含了几乎所有的语言的关键字一般包含了几乎所有的C C 语言的关语言的关键字。键字。随着随着C+C+语言的不断完善,其关键字集也在不断变化。语言的不断完善,其关键字集也在不断
5、变化。各不同版本的各不同版本的C+C+语言的实现可能有不少涉及其应用语言的实现可能有不少涉及其应用领域的关键字的设置领域的关键字的设置.n总之,关键字集合是使用总之,关键字集合是使用C+C+语言编程前应首先弄语言编程前应首先弄清楚的,特别是对少数个别的关键字的设置应有清楚的,特别是对少数个别的关键字的设置应有所了解,以免在编程中产生错误,至少应避免在所了解,以免在编程中产生错误,至少应避免在设定标识符时与关键字重名。设定标识符时与关键字重名。2.1.3 基本数据类型基本数据类型nC+是一门强数据类型的语言,每一种数是一门强数据类型的语言,每一种数据一般都严格地对应确定的数据类型。据一般都严格地
6、对应确定的数据类型。nC+的数据类型有基本数据类型和非基本的数据类型有基本数据类型和非基本数据类型之分。数据类型之分。n基本数据类型是基本数据类型是C+内部预先定义的数据内部预先定义的数据类型,非基本数据类型包括指针、数组和类型,非基本数据类型包括指针、数组和结构以及类类型等,非基本数据类型也称结构以及类类型等,非基本数据类型也称用户引入的数据类型。用户引入的数据类型。类类型名型名type 说说明明长长度度 数据范数据范围围 bool布布尔尔逻辑逻辑型型 1 true(1)false(0)char字符型字符型 l-128127 (0255)unsigned char无符号字符型无符号字符型 1
7、 0255 signed char有符号字符型有符号字符型 1 -128127signed short int有符号短整型有符号短整型 2-3276832767unsigned short int无符号短整型无符号短整型 2065535signed int有符号整型有符号整型2/4-3276832767 unsigned int无符号整型无符号整型 2/4 065535 signed long int有符号有符号长长整型整型 4-21474836482147483647 unsigned long int无符号无符号长长型型型型 4 04294967295 float浮点型浮点型 4 3.4*
8、10e-383.4*10e38 double双精度型双精度型 8 1.7*10e-3081.7*10e308long double长长双精度型双精度型8/10至少与至少与double类类型同型同2.2 常量与变量常量与变量n C+C+程序中的常量是指固定不变的量。一般常量程序中的常量是指固定不变的量。一般常量有两种表示形式:一种称为有两种表示形式:一种称为直接常量直接常量,一种称为,一种称为符号常量符号常量。例如圆周率。例如圆周率pai=3.1416pai=3.1416,其中,其中paipai就就是一个符号常量,是一个符号常量,paipai是量是量3.14163.1416的名字,而的名字,而3
9、.1416 3.1416 称为直接常量。称为直接常量。nC+C+程序中符号常量的名字就是一个标识符,而程序中符号常量的名字就是一个标识符,而直接常量是一类特殊的单词,它也是程序所要处直接常量是一类特殊的单词,它也是程序所要处理的数据的值。理的数据的值。n直接常量分为四类:直接常量分为四类:整型常量,浮点型常量,字整型常量,浮点型常量,字符型常量和字符串常量符型常量和字符串常量。2.2.1 整型常量整型常量n整型常量即整型常量即intint型常量,实际上就是整数。型常量,实际上就是整数。C+C+程序中除允许一般的十进制整数之外,程序中除允许一般的十进制整数之外,还允许八进制整数和十六进制整数出现
10、。还允许八进制整数和十六进制整数出现。n例如:例如:cout023“”23“cout023“”23“”0 x23;”0 x23;将输出不同的十进整数:将输出不同的十进整数:1919,2323,3535。2.2.2 浮点型常量浮点型常量n也称为实型常量,是指数据是以浮点方式也称为实型常量,是指数据是以浮点方式存储的。存储的。n小数点表示法:小数点表示法:4.754.75,2.0 2.0 n科学表示法:科学表示法:1.2e4 1.2e4,-7.37e-3-7.37e-3n浮点常量是浮点常量是doubledouble类型类型的常数。的常数。2.2.3 字符型常量与字符串常量字符型常量与字符串常量n1
11、 字符型常量字符型常量用单引号用单引号 括起来的一个字符构成了一个字符常量。括起来的一个字符构成了一个字符常量。字符型常量是字符型常量是char类型的常数。字符型数据总是占用一类型的常数。字符型数据总是占用一个字节并以定点方式存储该字符的个字节并以定点方式存储该字符的ASCII值,因此字符值,因此字符可以被用于描述小的整型数。可以被用于描述小的整型数。表现形式有:表现形式有:n字符字符形式形式n转义字符转义字符 cout“hellonTom”;n十六进制的转义字符十六进制的转义字符如如A的的ASCII值为值为65,若转换为十六进制为,若转换为十六进制为x41n八进制的转义字符八进制的转义字符如
12、:如:!的的ASCII值为值为33,可用,可用41表示。表示。2.2.3 字符型常量与字符串常量(续)字符型常量与字符串常量(续)n2 字符串常量字符串常量用双引号用双引号“”括起来的字符序列构成了一个字括起来的字符序列构成了一个字符串常量。如:符串常量。如:“hello worldn”。一个字符串占用的字节数等于它所包含的字符一个字符串占用的字节数等于它所包含的字符个数加个数加1,对应于每个字符的字节中存放该字符,对应于每个字符的字节中存放该字符的的ASCII值,而多余的一个字节存放值,而多余的一个字节存放0。表示字符串结束。表示字符串结束。注意注意:nA与与“A”的区别。的区别。n与与“”
13、的区别。的区别。2.2.4 符号常量符号常量n1 宏定义宏定义由由C语言延续下来的符号常量表示方法是宏定语言延续下来的符号常量表示方法是宏定义。义。如:如:#define PI 3.14由于宏不能体现数据类型,在一些特殊情况下由于宏不能体现数据类型,在一些特殊情况下可能带来难以察觉的错误,因此,可能带来难以察觉的错误,因此,C+建议用建议用const类型的常量替代它。类型的常量替代它。2.2.4 符号常量(续)符号常量(续)n2 用用const定义常量定义常量语法格式语法格式nconst type 常量名(值)常量名(值)nconst type 常量名常量名=值值定义中的定义中的type可以是
14、任何一种内置类型或自定可以是任何一种内置类型或自定义类型,义类型,省略时表示省略时表示int类型类型。优点:增加了数据类型,使得编译器能够实现优点:增加了数据类型,使得编译器能够实现对类型的核查以消除潜在的错误隐患。对类型的核查以消除潜在的错误隐患。2.2.4 符号常量(续)符号常量(续)n3 使用使用enum定义的枚举常量定义的枚举常量描述一组相关的状态或属性。如若干种颜色等。描述一组相关的状态或属性。如若干种颜色等。格式:格式:enum 枚举类型名枚举类型名 枚举值列表枚举值列表;n如:如:enum Week Sun,Mon,Tues,Sat;n使用:使用:Week aday=Wed;/a
15、day的值只能是的值只能是SunSat之一。之一。n第第1个枚举元素值默认为个枚举元素值默认为0,其他值依次递增。也可,其他值依次递增。也可以指定枚举元素的值。以指定枚举元素的值。n标准标准C+对枚举类型的限制比较严格,如不允许枚举对枚举类型的限制比较严格,如不允许枚举类型的变量进行增减运算等。类型的变量进行增减运算等。2.2.5 变量变量n变量定义隐含内容变量定义隐含内容系统在内存中分配一块存储区系统在内存中分配一块存储区用变量名表示存储在此内存区中的值用变量名表示存储在此内存区中的值n基本形式基本形式type 变量名(初始值);变量名(初始值);type 变量名变量名=初始值初始值;n定义
16、变量时最好为变量提供初始值,否则,定义变量时最好为变量提供初始值,否则,变量的值是难以预料的。变量的值是难以预料的。2.3 简单运算简单运算n运算符和表达式运算符和表达式n算术运算算术运算n赋值类运算赋值类运算n自加和自减运算自加和自减运算n关系运算和逻辑运算关系运算和逻辑运算n位运算位运算nsizeof运算与逗号运算运算与逗号运算2.3.1 运算符和表达式运算符和表达式n运算符运算符的使用含义是由系统预定义好的(注意,的使用含义是由系统预定义好的(注意,C+C+允许用户重定义即重载运算符,从而使它们对允许用户重定义即重载运算符,从而使它们对某些用户自定义类对象可具有另外的用户自定义某些用户自
17、定义类对象可具有另外的用户自定义运算符含义)。通常情况下,运算符所操作的运算符含义)。通常情况下,运算符所操作的运运算对象算对象均为基本数据类型(或其简单派生类型)均为基本数据类型(或其简单派生类型)的具体数据。的具体数据。n通过运算符把运算对象(常量或变量)按照一定通过运算符把运算对象(常量或变量)按照一定的规则连接起来就构成了的规则连接起来就构成了表达式表达式。表达式的表达式的运算运算结果是一个结果是一个“值值”(它将隶属于与运算对象相关(它将隶属于与运算对象相关的某种数据类型)。表达式的求值顺序取决于表的某种数据类型)。表达式的求值顺序取决于表达式中那些达式中那些运算符的优先级运算符的优
18、先级以及以及结合性结合性。n通常,表达式计算后的结果被存储在寄存通常,表达式计算后的结果被存储在寄存器中,如果不保存到某个变量中就会被随器中,如果不保存到某个变量中就会被随后的运算后的运算“冲掉冲掉”。n由于表达式值本身不是保存在内存中,也由于表达式值本身不是保存在内存中,也就不能代表内存变量。就不能代表内存变量。n特殊情况下除外。见特殊情况下除外。见P232.3.2 算术运算算术运算n算术运算包括:单目的单减算术运算包括:单目的单减(-)、增量、增量(+)和减量和减量(-)运算,以及双目的加运算,以及双目的加(+)、减、减(-)、乘、乘(*)、除、除(/)和模和模(%)运算。运算。n1.单目
19、的单减单目的单减(-)n使用格式使用格式:-n使用含义使用含义:相当于相当于用用-1乘乘上运算分量也即随后所上运算分量也即随后所跟的跟的的值。的值。n例如:例如:-x,-(a+b-2*c),-sqrt(a*a+b+b)n2.单目的增量单目的增量(+)和减量和减量(-)运算运算n增量增量(+)的使用格式的使用格式:前缀增量前缀增量:+后缀增量后缀增量:+其中的其中的“”必须为必须为int型型(包括包括char型型)变量。变量。增量增量(+)使用含义:令作为运算分量的那使用含义:令作为运算分量的那一一变量值加变量值加1。前缀增量前缀增量+i与后缀增量与后缀增量i+的区别在于:如果的区别在于:如果+
20、i与与i+又作为分量参加其他运算的话,又作为分量参加其他运算的话,前者是先令前者是先令i加加1然后参加其他运算;而然后参加其他运算;而后者则先令后者则先令i参加其他参加其他运算运算,而后再令,而后再令i加加1。x=i+;/结果等价于结果等价于 x=i;i=i+1;x=+i;/结果等价于结果等价于 i=i+1;x=i;n减量减量(-)的使用格式的使用格式:n除将加法改为减法外,减量运算与上述的增量运除将加法改为减法外,减量运算与上述的增量运算完全相同。算完全相同。1.void getn(int*n)2.3.while(*n)-);4.5.void main()6.7.int a=12;8.get
21、n(&a);9.couta+endl;10.n3.双目的加双目的加(+)、减、减(-)、乘、乘(*)、除、除(/)和模和模(%)运算运算使用格式使用格式:n 使用含义使用含义:n相当于进行数学中的加相当于进行数学中的加(+)、减、减(-)、乘、乘(*)、除、除(/)和取模和取模(%)运算。运算。例如:例如:x+y,x-y,x*y,x/y,x%y。需要注意以下几点:n1、做除法运算时,若参加运算的两个对象、做除法运算时,若参加运算的两个对象都为都为int类型时,则运算结果类型时,则运算结果(即商即商)仍为仍为int型数据型数据(甩掉商的小数部分而取整甩掉商的小数部分而取整)。如,。如,7/3的结
22、果为的结果为2,而,而7/4的结果则为的结果则为1。n2、取模运算符主要用于整型数值计算。、取模运算符主要用于整型数值计算。x%y是要求出是要求出x除以除以y所得的余数。如,所得的余数。如,7%3的结果为的结果为1,而,而7%4的结果则为的结果则为3。注。注意,意,x%y的值总等于的值总等于x-y*(x/y)的值。的值。需要注意以下几点:n3、若参加运算的两个分量的类型不同时,系统会、若参加运算的两个分量的类型不同时,系统会自动将自动将“短短”类型数据转换为等值的类型数据转换为等值的“长长”类型类型数据数据而后再进行运算,而运算结果规定为而后再进行运算,而运算结果规定为“长长”类型数据。所谓类
23、型数据。所谓“短短”类型数据是指该类型的数类型数据是指该类型的数据占据的内存空间少而且所表示数据大小的范围据占据的内存空间少而且所表示数据大小的范围也要小。也要小。如,如,char比比int要要“短短”,而,而int又比又比float“短短”等等。等等。n如:如:5/2为为2,而而5/2.0则为则为2.5。这是因为。这是因为int型的型的5与与float型的型的2.0进行运算时进行运算时,系统会自动将系统会自动将int型的型的5转转换为等值的换为等值的float型的型的5.0后再进行运算后再进行运算,因而结果因而结果也必然为也必然为float型的型的2.5了。了。2.3.3 赋值类运算赋值类运
24、算n1 赋值运算赋值运算是一个双目运算符是一个双目运算符n2 自反的赋值运算自反的赋值运算+=、-=、如:如:x+=3 与与 x=x+3 n3 赋值表达式赋值表达式x1=(x2=3)+2 /相当于相当于x2=3;x1=x2+32.3.4 关系运算和逻辑运算关系运算和逻辑运算n1 逻辑值逻辑值C+语言中增加了逻辑类型语言中增加了逻辑类型bool,其值可以是其值可以是true或或false,但本质上它是一种用整数描述的但本质上它是一种用整数描述的量,值为量,值为1和和0。例如:例如:nbool flag =true;nflag =flag -1;nflag =flag 1);2.3.4 关系运算和
25、逻辑运算(续)关系运算和逻辑运算(续)n2 关系运算关系运算C+语言提供了语言提供了6种关系运算符:、种关系运算符:、=、=、=、!、!=。表达式表达式 a =c 等价于等价于(a =c)。一个关系表达式的值只能是一个关系表达式的值只能是true 或或 false。2.3.4 关系运算和逻辑运算(续)关系运算和逻辑运算(续)n3 逻辑运算逻辑运算C+提供了三种逻辑运算提供了三种逻辑运算,相应的逻辑运算符为相应的逻辑运算符为:!,&,|(分别称为逻辑非分别称为逻辑非,逻辑与逻辑与,逻辑或逻辑或运算运算)。n如:如:!true,(31)&(24),(2.53)|falseC+允许其它类型的数据(整
26、型、浮点型或字允许其它类型的数据(整型、浮点型或字符等)作为逻辑运算符的操作数。符等)作为逻辑运算符的操作数。n如:如:2(x-3.0)nx=0 (或或!x)x!=0 (或或 x)n3=x=6 改成改成 3=x&x=6 2.3.5 位运算位运算n1 位运算的规则位运算的规则C+提供如下提供如下6个位运算符个位运算符:(单目单目,按位求反按位求反)、&(双目双目,按位与按位与)、|(双目双目,按位或按位或)、(双目双目,按位异或按位异或)、(双双目目,按位右移按位右移)。见例。见例P28。2.3.5 位运算(续)位运算(续)n2 位运算的特殊用途位运算的特殊用途运算可以将一个数中的某些位清运算可
27、以将一个数中的某些位清0。运算可将一个数中的某些位置运算可将一个数中的某些位置1。异或运算可以方便地使一个数据的某些位异或运算可以方便地使一个数据的某些位“翻转翻转”。“XOR”应用举例:用于屏幕颜色的擦除。应用举例:用于屏幕颜色的擦除。已知屏幕上某点的颜色值为已知屏幕上某点的颜色值为x,为了改变其颜色,可为了改变其颜色,可以用一种新的颜色如以用一种新的颜色如y与其与其“XOR”,结果为结果为xy。若若要还原成要还原成x(相当于擦除操作),可以用相当于擦除操作),可以用y与其再进行与其再进行“XOR”运算,结果为(运算,结果为(xy)y=x(yy)=x0=x。这就恢复了原来的颜色这就恢复了原来
28、的颜色x。Windows的绘图程序中用鼠标拉动画直线、用鼠标拖运窗口以及的绘图程序中用鼠标拉动画直线、用鼠标拖运窗口以及一些动画软件中都采用了这种技术。一些动画软件中都采用了这种技术。2.3.6 sizeof运算与逗号运算运算与逗号运算nsizeof是系统的关键字同时又作为常用的运算符。是系统的关键字同时又作为常用的运算符。nsizeof运算符用于确定数据占有的内存空间大小,运算符用于确定数据占有的内存空间大小,返回一个表达式或某一数据类型的字节数。它主返回一个表达式或某一数据类型的字节数。它主要有两种语法格式:要有两种语法格式:sizeof(e)或者或者 sizeof e sizeof(ty
29、pe)type 是定义变量的数据类型是定义变量的数据类型,e是表达式。是表达式。类型类型type格式必须放在括号中,表达式可以不用括号。格式必须放在括号中,表达式可以不用括号。nsizeof 运算符的操作数既可以是内置数据类型,也运算符的操作数既可以是内置数据类型,也可以是用户引入的数据类型或结构变量。可以是用户引入的数据类型或结构变量。2.3.7 sizeof运算与逗号运算运算与逗号运算(续续)nsizeof在编译阶段就完成了计算处理,其结果作为在编译阶段就完成了计算处理,其结果作为无符号无符号int常数。因而操作数实质上包含数据所占常数。因而操作数实质上包含数据所占内存的静态大小。下面是内
30、存的静态大小。下面是32位模式下的输出结果位模式下的输出结果:sizeof(1.0f)=sizeof(float)=4,sizeof(1.0)=sizeof(double)=8sizeof 1 =sizeof(char)=1,sizeof 1 =sizeof(int)=4sizeof(x6D)=1,sizeof(0 x6D)=4。sizeof(12)=3n逗号运算符是一个双目运算符,见逗号运算符是一个双目运算符,见P29。2.4 混合运算与类型转换混合运算与类型转换n 隐式转换隐式转换n 显式类型转换显式类型转换2.4.1 隐式转换隐式转换n在运算符本身没有特殊要求情况下,整型、在运算符本身没
31、有特殊要求情况下,整型、实型和字符型数据间可以进行混合运算。实型和字符型数据间可以进行混合运算。此时,系统会将参加运算的操作数类型转此时,系统会将参加运算的操作数类型转换一致后再进行运算,称为隐式类型转换。换一致后再进行运算,称为隐式类型转换。n类型转换中,以类型转换中,以“数据升格数据升格”方式进行。方式进行。相同类型的数据由短数据转换成长数据,定点相同类型的数据由短数据转换成长数据,定点数转换为浮点数,有符号数转换为无符号数。数转换为浮点数,有符号数转换为无符号数。(低低)charunsigned charintunsignedlongunsigned longfloatdouble(高高
32、)如如A/2 和和 3.0/2 分别转换为分别转换为65/2 和和 3.0/2.02.4.2 显式类型转换显式类型转换n1 来自来自C语言的类型转换运算符语言的类型转换运算符语法形式:语法形式:(type)(expression)举例:举例:int x(3),y(2);cout x/y ;double(x)/y;结果是什么?结果是什么?2.4.2 显式类型转换(续)显式类型转换(续)n2 造型造型(cast)n标准标准C+提供了称为造型的提供了称为造型的4种类型转换符。种类型转换符。static_cast、dynamic_cast、const_cast和和reinterpret_cast语法形
33、式:语法形式:X_cast (expression)2.4.2 显式类型转换(续)显式类型转换(续)1、const_cast主要用于主要用于const常量向非常量的类型转换常量向非常量的类型转换如:如:const int x(1);int*px=const_cast(&x);n其中其中const_cast就是去掉常量指针就是去掉常量指针x的的const属性。属性。不经过转换时,不经过转换时,常量的地址不能赋值给普通的常量的地址不能赋值给普通的指针变量指针变量。这样的转换这样的转换并不常见并不常见,常常是因为设计不合理,常常是因为设计不合理所致。所致。2.4.2 显式类型转换(续)显式类型转换(
34、续)2、static_castn与与C语言类型转换运算符语言类型转换运算符(type)作用基本相同,在编译时作用基本相同,在编译时完成,属于静态转换。如:完成,属于静态转换。如:int x=static_cast(3.8);/x 的值为的值为3n可以用可以用static_cast将将void*类型的指针转换为其它类类型的指针转换为其它类型的指针,如:型的指针,如:int y=2;void*vptr=&y;double*ptr=static_cast(vptr);n由于类型不相容,不同类型的指针之间不能直接转换,如:由于类型不相容,不同类型的指针之间不能直接转换,如:double*ptr=sta
35、tic_cast(&y);/错误的转换错误的转换n可见,由于在程序编译时进行类型匹配检查,使用可见,由于在程序编译时进行类型匹配检查,使用static_cast比来自比来自C语言的类型转换符更安全语言的类型转换符更安全 2.4.2 显式类型转换(续)显式类型转换(续)3、reinterpret_cast nreinterpret_cast的作用和功能与旧式的作用和功能与旧式的的(type)运算符完全相同。运算符完全相同。int y=2;double*ptr=reinterpret_cast(&y);nreinterpret_cast的类型转换几乎是没的类型转换几乎是没有任何有任何“障碍障碍”的
36、,也是最危险的。的,也是最危险的。2.5 数据输入与输出数据输入与输出nC和和C+都属于内核很小的语言,本身没有都属于内核很小的语言,本身没有输入输出语句,所有的输入和输出工作都输入输出语句,所有的输入和输出工作都由预定义的库函数或对象来完成。由预定义的库函数或对象来完成。n基本的输入和输出操作由基本的输入和输出操作由头文件头文件中定义的两个对象中定义的两个对象cin和和cout完成。完成。cin和和cout具有数据类型的自动识别功能,对于所具有数据类型的自动识别功能,对于所有内置的简单类型,不需要用户的任何设有内置的简单类型,不需要用户的任何设置,即可实现对数据的正确输入与输出。置,即可实现对数据的正确输入与输出。2.5 数据输入与输出(续)数据输入与输出(续)n1 cout与数据输出与数据输出预定义常量预定义常量endl,表示光标换行,效果与表示光标换行,效果与n等同。等同。n2 cin与数据输入与数据输入使用使用cin可以连续输入多个变量的值。可以连续输入多个变量的值。n如果连续输入的数据是整数或实数,采用空格或回如果连续输入的数据是整数或实数,采用空格或回车分隔。车分隔。n如果连续输入整数(或实数)和字符(或字符串),如果连续输入整数(或实数)和字符(或字符串),应采用回车分隔。应采用回车分隔。第第2章章 结束结束