C++程序设计课本翻译programming - in - C++-紧缩版(2)

2019-08-01 23:13

为程序的元素命名: 标识符

C++中,标识符被用来为某事命名――例如为像子程序这样的程序命名,并将程序存储在计算机的存储器中。标识符由字母 (A-Z, a-z), 数字 (O-9), 和下划线( _ )组成,但是必须用字母或下划线开始。 标识符与函数和数据对象联系在一起,使用标识符就涉及到函数或数据。

(在某些C++系统中,用下划线开始的标识符有特殊的意义,所以最好用字母开始一个标识符。) 这里是一些有效标识符的例子:

sum_of_squares J9 box_22A GetData Bin3D4 count 下面是一些无效标识符的例子以及为什么它们是无效的原因:

表中最后的标识符int是一个保留字的例子。

C++中,保留字有特殊的用途,你不能像编程者定义标识符那样使用它。附录A列出C++中所有的保留字。 保留字: C++中有特殊意义的单词,它不能像编程者定义标识符那样被使用。 使用有意义、可读性好的标识符

C++是一种敏感的语言。大写字母与小写字母是不同的。标识符:

PRINTTOPPORTION printtopportion RiNtToPpOrTiOn PrintTopPortion

是四种有区别的名字,无论如何不能交换。正如你看到的,这些形式中的最后一个标识符是最容易读的。在本书中,我们使用大写字母、小写字母和下划线组合在一起的标识符。 数据和数据类型

数据被存储在计算机的存储器中,每一个存储器的位置有唯一的地址,我们用这个地址存储和取出数据。在机器语言代码中,存储器的每个位置的实际地址是一个二进制数。 C++中,我们使用标识符来命名存储器的位置;然后编译器为我们将标识符转换成二进制。这是高级编程语言的有点之一: 它避免我们与存储器位置的数字地址(在这个地址中,我们存储数据和指令)接触。 数据类型:一组特殊的数据值及在这组数据值上的操作。

在C++中,每片数据必须具有指定的数据类型,数据类型决定了数据在计算机中如何被表示以及计算机能够在数据上处理的种类。

一些类型的数据被如此频繁的使用,所有C++为我们定义了它们。这些标准类型的例子是int (用于整数)、 float (用于具有小数的实数)和 char (用于字符数据)。

此外,C++允许编程者定义自己的数据类型( 用户定义的类型)。

在本章中,我们集中在两种数据类型――一种是用来描述只有一个字符组成的数据,另一种是用来描述字符串的数据。

char 数据类型:标准类型char描述由一个字母数字字符(一个字母、一个数字或一个特殊符号)组成的数据:

‘A’ ‘a’ ‘8’ ‘2’ ‘+’ ‘-‘ ‘$’ ‘?’ ‘*’ ‘ ‘

注意每个字符用单引号括起来,也就是说,C++编译器需要引号来区分字符‘8’和整数值8,因为两种数据在计算机内存储是不同的。注意空格,‘ ‘,也是有效的字符。

string数据类型: 鉴于类型char的值被限定为一个字符,因此string是一系列字符。像用双引号括起来的一个单词、名字或句子。例如,下面是C++中的字符串: \ 一个串必须完整的打印在一行上,例如,下面串 \is typed on more than one line.\是无效的,因为它分裂成了两行。

引号不属于串的部分,而只是简单用于把串与C++程序的其它部分区分开来。

一个不包含字符的串被称为空串。我们使用两个双引号来写空串,双引号中间不包含任何字符(甚至不包

含空格): \

空串不等于空格串;空串是不包含字符的特殊串。 2.1 C++ 程序的元素 为元素命名:声明

标识符既可以被用于命名常量也可以命名变量。换句话说,标识符可以是内容不允许改变的存储器位置的名字或是内容可以改变的存储器位置的名字。

我们如何告诉计算机标识符表示的是什么?我们使用声明来命名一个标识符以及它表示的是什么。例如,声明 int empNum;

通告empNum 是一个内容是类型int的变量名。当我们声明一个变量时,编译器为我们挑出存储器中的一个位置与标识符联系起来,并自动地与它保持联系。

声明:将标识符与一个数据对象、一个函数或一种数据类型联系起来的一条语句,以便程序员用名字来涉及那些项目。

在C++中,每个标识符只可以表示一种事情,你使用在程序中的每个标识符必须与所有其它的标识符不同。 常量和变量统称为数据对象。程序中,数据对象和实际指令都存储在各个存储器位置中。

在 C++中,每个标识符在它被使用之前,你必须声明它。这样允许编译器验证标识符的使用与它声明的是否是一致的。

C++中每种数据对象、函数或数据类型有不同的声明语句。

变量:当程序执行时,不同的变量在不同的时间也许被存储在同一存储器位置中,这种存储器位置被称为变量,并且它的内容是变量值。与存储器位置相联的符号名字是变量名或变量标识符(见图2-1)。 图 2-1 变 量

声明变量意味着具体指出它的名字和它的数据类型。这告诉编译器将名字与存储器位置联系在一起,存储器的内容具有具体的类型(例如,字符型char或字符串型string),下列语句声明 myChar 是一个类型char的变量: char myChar;

一个声明语句总是以分号结尾。 在一条语句中声明几个变量是可以的: char letter , middleInitial , ch ;

这里,三个变量都声明是char变量。尽管这样,我们还是偏爱用分开的语句声明每一个变量: char letter;

char middleInitial ; char ch ;

当修改程序、增加新变量到行中或删除你不再想要的项时,这种形式更容易。 用分开的语句声明每个变量也允许你附加注释到每个声明语句的右边,如下面这样: float payRate; // 雇员支付比例 float hours; //工作小时 float wages; // 应得薪水 float total; // 总的公司薪资总额 int empNum; // 雇员ID号

这些声明告诉编译器为四个float变量payRate 、 hours 、 wages 、total和一个int变量empNum预留存储器空间。注释(写在// 后面的每行单词)为读程序者解释每个变量表示什么。 现在我们已看到C++中如何声明变量,让我们再看看如何声明常量。

所有单个字符( 用单引号括起来)和串(用双引号括起来)是常量。 'A' '@' \

常量是它的值决不能改变的一些数 ,当我们在程序中使用一个实际的常量值时,我们使用的是字面常量。 字面常量:写在程序中的任何常量。

名字常量(符号常量):涉及到一个标识符的存储器位置,这个存储器包含了不能改变的数据。 这里,我们看一些常量声明的一些例子。注意声明以保留字const开始,并且等号出现在标识符和字面常量之间。

const string STARS = \const char BLANK = ' ';

const string BOOK_TITLE = \const string MESSAGE = \

正如我们上面所做的,许多C++编程者都大写名字常量的整个标识符并且用下划线分开英语单词。这种方法让读者迅速区别出现在程序中的变量名和常量名。 本书中我们使用标识符的习惯如下:

? 对于变量,我们以小写字母开始,每个后续单词以大写字母开始 lengthInYards middleInitial hours

? 编程者写的函数和编程者写的数据类型,每个后续单词以大写字母开始,但是开始用大写字母开始。 GalcPay(payRate ,hours ,wages) Cube(27) MyDataType ? 对于名字常量,每个字母用大写并且用下划线分开英语单词。 BOOK_TITLE OVERTIME MAX_LENGTH

2.1 C++ 程序的元素 执行语句

赋值:变量的值能够通过赋值语句被设置或改变。例如: lastName = \

赋串值\到变量lastName中。 这是赋值语句的语法模板:

赋值语句:存储一个表达式的值到一个变量中,任何预先设置在变量中的值被破坏并且被表达式的值所代替。

仅能有一个变量能放在一个赋值语句的左边,一个赋值语句与一个数学等式(x+y=z+4)是不同的。 给出声明:

string firstName ; string middleName ; string lastName ; string title; char middleInitial ; char letter ; 下列赋值是有效的: firstName = \middleName = firstName; middleName = \

lastName = \title = \middleInitial = ' ' ; letter = middlelnitial;

无效赋值语句 原因middleInitial = \具有字符类型;而 \是串。letter = firstName ; letter 具有字符类型;具有串类型。firstName = Thomas ; Thomas 是一个没有声明的标识符。\只有变量才能出现在赋值号“=”的左边。lastName = ; 赋值号右边的表达式丢失。

可是,这些赋值是无效的:

表达式:由标识符、字面常量和运算符排列的能求出一个给定类型值的式子。

串表达式:虽然我们不能在串上实现算术运算,但串数据类型提供了一个特殊的使用“+”运算符的被称为连接的串操作,

两个串连接的结果是一个包含两个串中字符的新串。例如,给出语句: string bookTitle ; string phrasel ; string phrase2 ;

phrase1 = \phrase2 = \ 我们能够写出:

bookTitle = phrasel + phrase2;

这个语句从存储器中取出phrase1的值,并且连接 phrase2形成一个新的、暂时的包含字符\and Problem Solving\的串。然后这个暂时的串赋给(存储到) bookTitle。 如果我们取代用下式:

bookTitle = phrase2 + phrase1; 那么bookTitle的内容为: \

名字串常量、字面串和字符数据及串变量的连接,仅有的限制是,用“+”连接符连接的操作数之一至少必须有一个是串变量和名字常量(所以你不能使用像这样的表达式:\)。例如,如果我们已经声明了下面的常量: const string WORD1 = \const string WORD3 = \const string MORD5 = \ 那么我们能够写出下列赋值语句:

bookTitle = 'P' + MORd1 + \结果,bookTitle 包含串:

\

假如bookTitle 已经包含 \, 并且我们希望得到标题,我们能够使用形如下式的一条语句:

bookTitle = bookTitle + \

记住连接只能用串类型变量。甚至是对操作数用算术加运算符,我们也不能将像int和float这样的数字数据类型值与串连接。

输出:在C++中,我们使用一个特殊变量名cout与插入运算符(<<)一道来写出变量和表达式的值: cout << \

这个语句在标准输出设备(通常是显示器)上显示字符Hello。

变量cout被预先在C++系统中定义来指示输出流。你能够认为一个输出流就像一系列无休止的字符送往输出设备。在有cout场合, 输出流就送往标准输出设备。

插入运算符 << (常发音为\to\要两个操作数。它的左边操作数是一个流表达式(最简单的场合,只有一个如cout这样的流变量),它的右边操作数是一个表达式,这个表达式可以是一个字面串这样的简单表达式:

cout << \

cout << bookTitle + \

插入运算符将右边的操作数转换成一系列字符并把它们插入到输出流中。注意<<的指向,数据是将写在“<<”右边的表达式送往“<<”左边的输出流。

在一条输出语句中,你能够使用<<运算符多次,每添加下一个数据项到输出流,“<<”就出现一次。例如,我们能够将前面写的两条输出语句写为:

cout << \

如果bookTitle 包含\那么两种方法产生相同的结果: The title is American History. 2nd Edition

下列是输出语句产生的输出显示,这些例子假设字符变量ch包含’2’,串变量firstName包含\并且串变量lastName 包含 \

如果你想打印出包含双引号的一个串,你必须打入反斜杠和双引号,它们中间没有空格。例如,打印字符:

A1 \ 输出语句像如下这样: cout << \

通常,一个接一个的输出语句引起输出连续显示在同一行上。序列语句: cout << \cout << \

写出下列串在同一行屏幕上: Hithere

要打印两个单词分别在两行上,我们可以这样写: cout << \cout << \ 这些语句输出是: Hi there

标识符endl (意思是\是一个特殊的被称为控制符的 C++特性。endl 让你结束一个输出行并且继续到下一行。 在程序中增加注释

所有你需要执行的程序是由声明和执行语句正确的结合在一起的。编译器忽略注释,但注释极大地帮助了那些必须读程序的人们。注释可以出现在除标识符、保留字或字面常量中间以外的任何程序中的地方。 C++注释以两种形式出现。第一种是用一对/* */括起来的任何序列字符,编译器忽略一对/* */内的任何字符。这里是一个例子:

string idNumber; /* Identification number of the aircraft */ 第二种更普遍,用两个斜杠(//)开始并延续到那行程序的结尾: string idNumber; // Identification number of the aircraft 编译器忽略两斜杠后面的任何字符。


C++程序设计课本翻译programming - in - C++-紧缩版(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:住房公积金 - 专办员试题与答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: