您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 20100529012149_C++大学基础教程第二章
-1-C++大学基础教程第2章基本数据类型与表达式北京科技大学信息基础科学系-2-程序中最基本的元素是数据类型,根据数据类型可以为变量或常量分配内存空间,将变量、常量和运算符结合在一起组成表达式,进行复杂的运算和处理。-3-第2章基本数据类型与表达式2.1词法记号和标识符2.2基本数据类型2.3变量和常量2.4运算符和表达式2.5基本输入输出-4-2.1词法记号和标识符-5-2.1词法记号和标识符1、C++字符集英文字母:A~Z,a~z数字字符:0~9特殊字符:+-*/%^=!#&|_~\‘“;.,()[]{}空格-6-2.1词法记号和标识符2、关键字预先定义好的标识符,C++编译器对其进行特殊处理。使用VC++6.0的编辑环境时,缺省是蓝色的字符即为关键字。-7-2.1词法记号和标识符3、标识符标识符是程序员声明的单词,它命名程序正文中的一些实体,如函数名、变量名、类名、对象名等。C++标识符的构成规则如下:1、不能是C++的关键字;2、第一个字符必须是大写、小写字母或下划线;3、其他字符可以由大、小写字母、下划线或数字组成,不能包含空格和“+、-、;”等特殊字符;4、为方便输入,长度一般不超过31个字符。-8-2.1词法记号和标识符例如:合法的标识符:apple、_Student、_123、No1、max_num不合法的标识符:51job、maxnum、-abc注意:C++的标识符是大小写敏感的,即abc≠ABC。-9-2.1词法记号和标识符4、分隔符分隔符用于分隔程序中的正文,在C++中使用下列字符作为分隔符:(){},:;这些分隔符不表示实际的操作,仅用于构造程序。比如“;”,用来作为一句完整语句的结束。-10-2.1词法记号和标识符5、空白在C++语句中经常出现空白(制表符、空格、空行)等,通常都忽略不计。如:x=a+b或写成:x=a+b;-11-2.2基本数据类型-12-2.2、基本数据类型什么是数据类型?数据是程序处理的对象,数据根据其本身的特点进行分类,从而形成不同的数据类型。例如:数学中有自然数、整数、实数-13-2.2、基本数据类型C++将数据类型分成两类:基本数据类型自定义数据类型基本数据类型整型:int字符型:char、wchar_t(双字符型)实型:float、double逻辑型:bool-14-2.2、基本数据类型自定义数据类型数组:type[]指针:type*引用:type&空类型:void结构:struct联合:union枚举:enum类:class-15-数据类型长度(字节)取值范围char1-128~127unsignedchar10~255shortint2-32768~32767unsignedShortint20~65535int4-231~231-1unsignedint40~232-1long4-231~231-1unsignedlong40~232-1float4-3.4*1038~3.4*1038double8-1.7*10308~1.7*10308longdouble8-1.7*10308~1.7*10308bool10或1-16-2.2、基本数据类型修饰符在C++中为了更加准确的描述数据类型,提供了4个关键字用来修饰基本的数据类型:1、长型long2、短型short3、有符号signed4、无符号unsigned-17-1、short:仅用来修饰int,称为短整型,占2字节内存,也可直接简写为short;2、long:仅修饰int和double,因为在不同的编译环境中使用long修饰的数据所占内存不同,这里列出的是在VC++6.0的环境下的。3、unsigned:用来修饰char、short和int,表示该数据类型为无符号数。4、signed:用来修饰char、short和int,表示该数据类型为有符号数,为缺省设置。-18-2.2、基本数据类型数据类型和内存空间不同的数据类型,加上不同的修饰符就具有了不同的特点,在内存中占用的空间也不同,因而其所能表示的数值范围也不尽相同。内存单元的单位是字节,因此用来表示数据类型的长度的单位也是字节。-19-2.2、基本数据类型注意整型int的长度等于机器的字长:16位机:int=2字节;32位机:int=4字节。但是short和long表示的数据长度是固定的,任何支持标准C++的编译器都是如此,因而如果需要编写可移植性好的程序,应将整型声明为short或long。-20-2.2、基本数据类型例题编写一个程序,输出基本数据类型char,int,float,double,bool的长度。提示:使用sizeof(数据类型)能够获取不同数据类型的长度。-21-//输出基本数据类型的长度#includeiostreamusingnamespacestd;voidmain(){cout“char:”sizeof(char)“字节\n;coutint:sizeof(int)字节\n;coutfloat:sizeof(float)字节\n;coutdouble:sizeof(double)字节\n;coutbool:sizeof(bool)字节\n;}-22-2.3变量和常量-23-2.3变量和常量概述程序所处理的数据不仅分为不同的数据类型,而且每种类型的数据还分为变量和常量。程序在运行中就是通过这些变量和常量来操作数据的。什么是变量?在C++中,变量是存储信息的地方。变量的实质是内存中的一个地址空间,在这个地址空间中可以进行数据的存储和读取。-24-2.3变量变量定义的格式:数据类型变量名1,变量名2,…变量名n;例如:定义各种类型的变量intnum;floatf;charch;shorts;doublearea,length;-25-2.3变量说明在创建或定义变量时,需要指明该变量的数据类型和名称。数据类型:决定变量的存储方式和可以进行的操作;变量名称:用来区分不同的变量。变量一旦被定义,则系统自动为其分配应占的内存。-26-2.3变量变量名称的定义遵循标识符定义的规则,实际上变量名称就是其中一种标识符。常用的命名约定有三种:1、Unix环境常用的命名法my_age、num_of_student2、驼峰式命名法myAge、numOfStudent3、匈牙利标记法iMyCar、ipMyCar-27-2.3变量赋值使用赋值运算符“=”可以将一个值赋给变量。例如:unsignedshortage;age=18;或者unsignedshortage=18;或unsignedshortage(18);-28-2.3变量我们可以一次定义多个相同数据类型的变量,也可以一次为多个变量初始化:charch1=’a’,ch2=’b’;intheight=10,width=6,area;特性:变量可以被多次赋值,但每次赋值后,原值都会被新值覆盖。-29-例2.2:赋值运算符的使用#includeiostreamusingnamespacestd;voidmain(){intmyAge=18;cout“myAge=”myAgeendl;myAge=20;cout“myAge=”myAgeendl;}运行结果:myAge=18myAge=20-31-2.3常量严格来说,常量又分成符号常量和常数。符号常量:代表一个固定不变值的名字;常数:程序中使用的具体的数据。-32-2.3常量符号常量C++中提供了一个关键字const,用来区分常量和变量。并且由于常量代表一个固定的值,并且该值在程序运行过程中不能够被改变,所以要求常量在定义的时候必须进行初始化。例如:constinti=10;关键字数据类型常量名=初始值;-33-2.3常量define关键字在C语言中使用预编译指令#define也能够定义常量。例如:#definePI3.1415927关键字常量名值该语句属于预编译指令,不属于C++语句,因而行尾不需要使用分号。并且由于C++是向下兼容的,因而C语言的程序能够在C++的编译器下顺利运行。但是在C++编程中,建议使用const替代#define定义常量。-35-2.3常量整型常数十进制数:1008进制数:014416进制数:0x64用U或u表示无符号整型,如65535U。用L或l表示长整型。默认的是int型。-36-2.3常量实型常数1小数形式例如:0.123、23.122指数形式例如:123e5或123E5=123*105注意:e前面必须有数字,e后面必须是整数实常数默认为double型可用后缀F(f)表示实数常数为float型。-37-2.3常量字符常数1、用单引号括起来的一个可显示字符,例如:‘a’、‘?’。2、转义字符以\开头的字符序列,代表特殊的意义。例如:\n、\t、\”-38-ASCII字符表0000010100111001011101110000NULDLESP0@P`p0001SOHDC1!1AQaq0010STXDC22BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENGNAK%5EUeu0110ACKSYN&6FVfv0111BELETB'7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,L\l|1101CRGS-=M]m}1110SORS.Nn~1111SIUS/?OoDEL注:H表示高3位,L表示低4位。HL-39-\a0x07bell(响铃)\n0x0A换行\r0x0D回车\t0x09制表符\v0x0B垂直跳格\b0x08Backspace\\0x5C‘\’\0x22双引号\‘0x27单引号\ddd1-3位8进数\xhh1-2位16进数-40-例2.3:打印特殊字符#includeiostreamusingnamespacestd;voidmain(){cout“输出字母:”‘a’’\a’endl;cout“输出字母:”‘n’’\n’;}运行结果:输出字母:a(蜂鸣器响一声)输出字母:n(换行)-41-2.3常量反斜杠还可以和八进制数或十六进制结合起来表示相应的ASCII码。表示形式如下:\ddd:1~3位八进制数\xhh:1~2位十六进制数我们知道在十六进制的ASCII码表中,字母’a’~’z’的ASCII值是61H~7AH,因此我们也可以使用如下两句代码替代例2.3中的输出,达到同样的结果。cout“输出字母:”‘\x61’’\x07’endl;cout“输出字母:”‘\x6E’’\x0A’;-42-2.3常量字符变量charch1=‘a’,ch2=97,ch3=‘\064’原因:在内存中,字符数据以ASCII码存储,即以整数表示,所以,C++中字符数据和整数可以相互赋值。-43-例2.4:字符数据和整型数据的转换#includeiostreamusingnamespacestd;voidmain(){intn=’a’;charch=97;cout”输出内容:”nendl;cout”输出内容:”chendl;}运行结果:输出内容:97输出内容:a注意:变量在输出时,根据其本身的数据类型进行输出。-44-2.3常量字符串常量由一对双引号括起来的字符序列,例如:“howdoyoudo?”“helloworld!”-47-2.3常量逻辑常数逻辑型常数只有两个:false(假)和true(真)。在显示器上显示为0和1。-48-2.4运算符和表达式-49-2.4运算符和表达式1、表达式2、语句和块3、运算符赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符、条件运算符、逗号运算符-50-2.4运算符和表达式表达式变量、常量是存放数据的地方,那么在C++语言中这些数据是如何处理和计算的呢?在C++语言中将变量、
本文标题:20100529012149_C++大学基础教程第二章
链接地址:https://www.777doc.com/doc-3440214 .html