第三章数据类型、标识符和关健字 11 正整数如32,45,以及1003等可象我们日常生活中用到的那样来表示。0当作正 整数.负整数如-90和-500,需要在数字的前面加上短横线(-) ■关键字integer和int用来声明整数类型. 下面整数声明的例子: int count,numbers; 3.4.1短整数和长整数 为了便于理解短整数数和长整数数,有必要讨论一下计算机如何存储数据。在计算机 中任何信息都是以二进制形式存储的。二进制数只能用0或1来存储。每个0或1称作 位(bit).八位组成一个字节(byte),两个字节组成一个字(ord), 整数能存储的最大值是由计算机给它分配的存储空间的大小决定的。而整数数所占的 存储空间因不同的计算机而异.例如,某种计算机可能用16位(两个字节)来存储一个 整数数,而另一种计算机则可能用32位(四个字节)来存储。 当一个整数存储在计算机中时,左起第一位叫做第0位,它用来表示该数是正数或负 数。 ■如果是负数,则第0位被置为1;正数则第0位为0, 16位计算机能存储的整数范围是+32,767~-32,768,而32位计算机存储的整数 范围则增加到-2,147,483,648-2,147,483.647 然而,如果必须在16位计算机中以整数形式存储一个相当大的数,则可以使用长整 数 ■在整数声明前加上关键字Iog,即表示长整数.加上关键字short,则表示短整 数数. 下面是一个声明长整数的例子: long int speed-of-light; 用长整数可能会降低程序的执行速度 短整数数可用来加速程序的执行.在大多数计算机中,存储短整数数与普通整数占用 相同的空间.下面说明了如何声明短整数数 k营酒阿网心吉转天字,处 ort int planet-count long speed_of_light; short planet-count; 3.4.2无符号整数 ■如果希望程序中的某个整数一直是正数,则可以在该整数声明的前面加上关键字 unsigned. 结果导致能存储的整数数的最大值增大了.第0位不再用作符号位。在16位计算机 中以无符号整数形式存储时,数据范围由-32,768~+32,167变为0-+65,535。下面 是几个例子: unsigned large-number;
22 第三章数据类型、标识符和关健字 unsigned int speed; unsigned long distance: unsigned short mileage 以上所有变量都是可接受的 3.4.3长整数和无符号常量 常量的值在整个程序运行期间不能改变.长整数常量比普通常量有着更大的变动范 ■常整数常量在其后加上1或L来表示.如: int450001: int50000L: 无符号常量象无符号整数一样进行存储。 ■无符号整数在其后加u或U来表示,如: int60000u int65535: 3.5字符型数据 ■字符数据类型用来表示字母表(alphabet). 实际上,字符数据只是表示字符的数字值。这些数字值基于ASCII(American Standard Code for Information Interchange)标准.根据ASCII码标准,数值65代 表大写字母,而47则代表小写字母,表3.1列出了全部SCII码的十进制和 进制表示。您不必记住这些代码值.重要的是要理解每个ASCI1码都与一个特定的数值相 关联 麦3.1ASC11代码表 十进制人进制符号十进制人进制符号十进制人进制 符号 000 43 053 126 h01 131 130 003 056 89 131 3 005 060 91 133 03 14 001 062 93 135 010 61 n63 94 136 01 06 0 012 AJ 065 96 140 01
一第三章数据类型、标识符和关键字 014 55 067 98 142 99 143 01 1017 0 58 1072 149 p 146 0 160 04 10 147 075 104 150 023 62 0 024 T 63 077 106 025 100 22 026 165 101 08 027 101 109 155 30 67 103 110 25 031 Y 68 104 111 157 032 105 112 160 033 70 106 113 161 28 034 71 007 114 162 035 7 10 115 163 30 1036 111 116 164 037 112 h17 165 040 [sp]75 113 18 41 114 119 167 042 120 170 5 043 116 121 171 044 113 172 37 045 120 P 2 173 121 0 124 174 047 21 125 050 123 126 176 1 154 DEL 42 1052 125 看一下这张表,会发现有不少的特殊字符。如制表符,标点符号、控制字符(由·符 号来表达)、甚至数字。其中数字不仅可以表达成数值型(通过关键字it),还可以 被想定为字符 。字符数据通过关键字char来声明。如: char stringl,intial;
第三章数据类型、标识符和关健学 把一个字符作为数值时,要用单引号引起来,如: char vess='v:/字符常量yes初始化为y ■字符常量可由单引号引起来的多个字符所组成。这些常量可以是转义序列,可对于编 译器具有特殊意义的字符的组合 表3.2列出了可由我们的编译器识别的转义序列. 表3.2转义序列 转义序列纳译器动作 蜂鸣 换页 糖行 回车换行 水平制者 柔直制表 反斜杠 单引号 双引号 问号 八进制位模式,aa是一个八进制数 十六进制位模式,是一个十六进制数 用这些专用字符来向编译器表达特殊情况。其实在前面的几个程序中已遇到过八' 的用法了. ■这些专用序列都由一个或多个键码表示.然而,编译器将它们当作单一字符。 在本书后面的章节里,当我们开始学习怎样声明字符串时,这一特点将有更多意义。 可以把字符初始化成与它们的4SCII码等效的数值,如: char 465 与下列语句的效果是一样的: char tab='A'; 3.6浮点型 ■浮占型数据由一个整数部分 、一个小数部分以及可选的后缀组成。 对该类数据可声明如下 flaot half=0.5: 浮点型数据也可以包含一个指数数值,可声明如下: float big-number-465.012e3 一个浮点型的常量由f或F做后缀 float constant half=o.5f:
第三章数据类型、标识符和关键字 符点数通常以32位存储(假设是16位计算机). 3.7双精度数据类型 ■双精度数据类型类似于浮点型,只是要占据两倍于浮点类型的变量或常量所要求的存 储空间。 这种类型的常量也可以带有1或L做后缀,以表示长型。 3.8常量数据类型 ■修饰符cost可以优先于任何数据类型的声明,以指明这一变量的值不能被改变. 个const声明: const ten1c;/ten永远等于10 3.9识别大小写的能力 ■C+标识符是区分大小写的。 如下三个变量的声明: int variable; int variables int VARIBLE: 说明了三个不同的变量 下面用一个小例子来说明我们到此为止所讨论的内容 //TEXT3_1.CPP /iostream.h是cout语句所必需的 #include <iostream.h> mainO int floa;/错误一用关键字作名字非法 int sum;/合法的标识符名字 int Sum; /合法的标识符名字 f10at=2: Sum-0: sum-5; Sum=sum+float; cout<《“Sum is“<《Sum<\n" 编译这段程序将得到几条错误信息。请注意我们只列出那些与这段程序有关的信 息,本书的其余部分也将保持这种惯例。通常,其它错误只是针对实际问题的,或者是因